大公司的 Java 面试题集
找工作要面试,有面试就有对付面试的办法。以下一些题目来自我和我朋友痛
苦的面试经历,提这些问题的公司包括 IBM, E*Trade, Siebel, Motorola, SUN, 以及
其它大小公司。
面试是没什么道理可讲的,它的题目有的不合情理、脱离实际。有在纸上写
的,有当面考你的,也有在电话里问的,给你 IDE 的估计很少(否则你赶快去买彩
票, 说不定中)。所以如果你看完此文后,请不要抱怨说这些问题都能用 IDE 来
解决。你必须在任何情况下准确回答这些问题,在面试中如果出现一两题回答不
准确很有可能你就被拒之门外了。
当然这些都是 Java 的基本题,那些面试的人大多数不会问你 Hibernate 有多
先进,Eclipse 的三个组成部分,或 command design pattern,他们都是老一辈了,
最喜欢问的就是基础知识。别小看了这些基础,我朋友水平一流,结果就栽在一
到基础知识的问题下,和高薪无缘。
好了废话少说,开始正题。
第一,谈谈 final, finally, finalize 的区别。
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不
可继承。
finally 是异常处理语句结构的一部分,表示总是执行。
finalize 是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此
方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
第二,Anonymous Inner Class (匿名内部类) 是否可以 extends(继承)其它类,
是否可以 implements(实现)interface(接口)?
可以继承其他类或完成其他接口,在 swing 编程中常用此方式。
第三,Static Nested Class 和 Inner Class 的不同,说得越多越好(面试题有的很
笼统)。
Static Nested Class 是被声明为静态(static)的内部类,它可以不依赖于外部类实
例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
第四,&和&&的区别。
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).
第五,HashMap 和 Hashtable 的区别。
HashMap 是 Hashtable 的轻量级实现(非线程安全的实现),他们都完成了 Map
接口,主要区别在于 HashMap 允许空(null)键值(key),由于非线程安全,效
率上可能高于 Hashtable.