招聘笔试题

长虹笔试真题及答案解析

1、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

不对,有相同的hash code。

2、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

是值传递。java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

3、swtich是否能作用在byte上,是否能作用在long上,是否能作用在string上?

switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。

4、写一个singleton出来。

singleton模式主要作用是保证在java应用程序中,一个类class只有一个实例存在。

一般singleton模式通常有几种种形式:

第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getinstance方法获取对它的引用,继而调用其中的方法。

public class singleton {private singleton(){}private static singleton instance = new singleton();public static singleton getinstance() {return instance;}}

第二种形式:

public class singleton {private static singleton instance = null;public static synchronized singleton getinstance() {if (instance==null)instance=new singleton();return instance; }}

5、 hashtable和hashmap

hashtable继承自dictionary类,而hashmap是java1.2引进的map inte[被过滤]ce的一个实现,hashmap允许将null作为一个entry的key或者value,而hashtable不允许,还有就是,hashmap把hashtable的contains方法去掉了,改成containsvalue和containskey。因为contains方法容易让人引起误解。最大的不同是,hashtable的方法是synchronize的,而hashmap不是,在多个线程访问hashtable时,不需要自己为它的方法实现同步,而hashmap就必须为之提供外同步。hashtable和hashmap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

大家都在看