大公司的 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.