当前位置:求职网>> 笔试>> SHL笔试题>>湖南华诺集团笔试题

湖南华诺集团笔试题

来源:过来人求职网 发布日期:2012-10-31 点击:648次   [收藏]
1、Double、Class是final类,不能被继承;Math、Thread可以被继承

2、          当前类  同一package  子孙类  其它package

Public        √      √        √        √

protected      √      √        √        ×

default        √      √        ×        ×

private        √      ×        ×        ×

3、Collection的4个主要接口:List、Set、BeanContext、SortedSet

4、Error和Exception的区别

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

5、多线程和同步的几种实现方式

多线程:主要有两种 一种是继承Thread类,一种是实现Runnable接口

同步有两种方法。一种同步方法,一种同步代码!分别是synchronized,wait与notify

6、打印昨天的当前时间

long today = System.currentTimeMillis();

long yestory = today – 1000*60*60*24 ;

Date time = new Date( yestory ) ;

System.out.println(time.getDate()+”号”+time.getHours()+”时”+time.getMinutes()+”分”+time.getSeconds()+”秒”)

7、Jsp重定向的方法

服务器端的重定向可以有两种方式,一是使用HttpServletResponse的

sendRedirect()方法,一是使用RequestDispatcher的forward()方法。

8、Jsp页面间数据如何传递

a.设置session变量,session.setAttribute(“a”,”b”);b.地址方式传值:show.jsp?id=变量值

9、Jsp的内置对象:request、response、session、application、out、

java.lang.Object、config、exception、pageContext

10、forward、redirect的区别

forward仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;

redirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。

所以,forward更加高效,在forward可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。

在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的

URL,把那个URL的响应内容读取过来,然后把这些内容 再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址. redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所 以redirect等于客户端向服务器端发出两次request,同时也接受两次response。

11、多态的概念

多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态

多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

12、Application的生命周期

application对象是一个特别重要的JSP对象,它存在于服务器的内存空间中,服务器一旦启动,就会自动产生一个application对象,除非服务器被关闭,否则这个application对象将一直保持下去。在application对象的生命周期中,在当前服务器上运行的每一个JSP程序都可以任意存取和这个application对象绑定的参数(或者Java对象)的值。application对象的这些特性为我们在多个JSP程序中、多个用户共享某些全局信息(如当前的在线人数等)提供了方便。由此我们可以不借助数据库就实现聊天室的功能。

13、list、set的区别

list是列表(接口),是可以允许出现重复值的,
set是集合,不允许出现重复值

ArrayList和HashMap是异步的,

Vector和HashTable是同步的,

所以Vector和HashTable是线程安全的,

而ArrayList和HashMap并不是线程安全的。

因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于ArrayList和HashMap。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap

14、如何区别set中的元素

在比较时先调用hashCode方法,如果不相同,证明不相等。
如果相同,再调用equals方法,如果equals方法相同,证明相等,不相同,证明不相等。

==:主要用在基本数据类型及引用
Equals:主要是对象或对象引用的比较。

15、 抽象类与接口的区别

1,抽象类里可以有构造方法,而接口内不能有构造方法。

2,抽象类中可以有普通成员变量,而接口中不能有普通成员变量。

3,抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。

4,抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。

5,抽象类中可以包含静态方法,接口内不能包含静态方法。

6,抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public  static类型,并且默认为public static类型。

7,一个类可以实现多个接口,但只能继承一个抽象类。

再补充点两者在应用上的区别:

接口更多的是在系统框架设计方法发挥作用,主要定义模块之间的通信,而抽象类在代码实现方面发挥作用,可以实现代码的重用

16、为什么要用Class.forName方法

从JVM的角度看,我们使用关键字new创建一个类的时候,这个类可以没有被加载。但是使用newInstance()方法的时候,就必须保证:1、这个类已经加载;2、这个类已经连接了。而完成上面两个步骤的正是Class的静态方法forName()所完成的,这个静态方法调用了启动类加载器,即加载java API的那个加载器。

现在可以看出,newInstance()实际上是把new这个方式分解为两步,即首先调用Class加载方法加载某个类,然后实例化。 这样分步的好处是显而易见的。我们可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了一种降耦的手段。

最后用最简单的描述来区分new关键字和newInstance()方法的区别: newInstance: 弱类型。低效率。只能调用无参构造。 new: 强类型。相对高效。能调用任何public构造。

17、java连接池的使用

18、数据库的实例与用户的概念

一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成

19、RMI的基类有哪些

20、如何访问不同的数据库