background image

JAVA 面试题分类

JAVA 的基本知识

1、List、Map、Set 三个接口,存取元素时,各有什么特点?

List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存
key-value 值,value 可多值。

2、Collection 和 Collections 的区别。

Collection 是集合类的上级接口,继承与他的接口主要有 Set 和 List.

Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、
排序、线程安全化等操作。

3、HashMap 和 Hashtable 的区别。

HashMap 是 Hashtable 的轻量级实现(非线程安全的实现),他们都完成了 Map 接

口,主要区别在于

HashMap 允许空(null)键值(key),由于非线程安全,效率上可能高

Hashtable。
HashMap 允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。

HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。因为
contains 方法容易让人引起误解。

Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Map interface 的一个实

现。
最大的不同是,

Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多个线程访问

Hashtable 时,不需要自己为它的方法实现同步,而 HashMap 就必须为之提供外同步。
Hashtable 和 HashMap 采用的 hash/rehash 算法都大概一样,所以性能不会有很大的差异。

4、final, finally, finalize 的区别。

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继

承。
finally 是异常处理语句结构的一部分,表示总是执行。