下面是Java程序员面试笔试真题与解析的勘误,部分错误的内容在最新的书籍中已经勘误过了,如果在书中没有发现对应的错误,请忽略勘误信息。 (1) 真题15 答案修改为:错误,可以不同,在命令行下编译后运行main方法所在的类即可。但是在IDE中必须相同 (2) 真题30 “由于使用了没有初始化的变量j”,修改为“由于使用了没有初始化的变量k” (3)真题39 答案修改为:A、C (4)真题60 Java程序初始化工作可以在许多不同的代码块中完成(例如静态代码块、构造函数等),它们执行的顺序如下:父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造函数、子类非静态变量、子类非静态代码块和子类构造函数 修改为: Java程序初始化工作可以在许多不同的代码块中完成(例如静态代码块、构造函数等),它们执行的顺序如下:(父类静态变量/父类静态代码块)、(子类静态变量/子类静态代码块)、(父类非静态变量/父类非静态代码块)、父类构造函数、(子类非静态变量/子类非静态代码块)和子类构造函数 这里需要注意的是,(静态)非静态成员域在定义时初始化和(静态)非静态块中初始化的优先级是平级的,也就是说按照从上到下初始化,最后一次初始化为最终的值(不包括非静态的成员域在构造器中初始化)。所以在(静态)非静态块中初始化的域甚至能在该域声明的上方,因为分配存储空间在初始化之前就完成了。 如下例所示: public class testStatic { static {a=2;} static int a =1; static int b = 3; static{ b=4;} public static void main(String[] args) { System.out.println(a); System.out.println(b); } } 程序运行结果为: 1 4 (5)真题61 最后一行“此时会输出父类中的num值:3。”修改为“此时会输出父类中的num值:2。” (6)真题70 答案修改为:B、D。 对于选项C:this()用来调用无参数的构造方法,如果定义新的构造方法,可以调用this(),也可以不调用。 (7)真题81 “一个接口只有方法的特征,没有方法的实现”,后面增加一句话“但是从Java8开始接口中的方法也可以实现” (8)真题109 选项D中的“选项D覆盖定义了一个新的方法”修改为“选项D定义了一个新的方法” (9)真题198 这一节中的讲解为String内部通过StringBuffer来实现的,把其中的StringBuffer修改为StringBuilder,因为内部是使用StringBuilder实现的。 (10)真题201 答案:“hello” 修改为 答案:hello (11)真题205 String b=" Hello"; 修改为 String b="Hello”; (12)真题267 “由于Hashtable是线程安全的,因此没有采用快速失败机制” 修改为: 修改为: 是否使用快速失败机制是与迭代器的实现方式有关系的。Hashtable的iterator遍历方式支持fast-fai,而Enumeration不支持fast-fail。在iterator的遍历方式中,从源代码的实现中可以发现,每次都会检查if (modCount != expectedModCount)是否满足。一旦发现HashTable中元素的数量改变了。就会抛出异常,因此使用了快速失败机制。 而Enumeration的遍历方式没有使用fast-fail。 (13)真题269 被设计为用来写数据的泛型(只能写入T或T的子类类型),不能用来读。 把“不能用来读”修改为“虽然也能读数据,只不过读出来的都是Object类型,因此很少被用来读” (14)真题289 示例代码修改为: import java.util.*; public class A { public int hashCode() { return 1; } public boolean equals (Object b){return true;} public static void main(String args[]) { Set set = new HashSet(); set.add(new A()); set.add(new A()); set.add(new A()); System.out.println(set.size()); } } (15)真题321 Runable修改为Runnable (16)真题367 代码中的xtx修改为ctx (17)真题385 写法一中的 public Test(){} 修改为 private
Test(){} |
Powered by Discuz! X3.2
© 2001-2013 Comsenz Inc.