Java异常处理的问答题

版权声明:转载请注明出处 https://blog.csdn.net/yrwan95/article/details/81561477

Collection 和 Collections的区别

答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
        Collections是针对集合类的一个工具类,提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作

--------------------------------------------------
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别

答:Set里的元素是不能重复的,用iterator()方法来区分重复与否。

equals()是判读两个Set是否相等

equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,

为的是当两个分离的对象的内容和类型相配的话,返回真值

--------------------------------------------------
List, Set, Map是否继承自Collection接口

答: List,Set是,Map不是

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

答:不对,有相同的hash code

--------------------------------------------------
说出ArrayList,Vector, LinkedList的存储性能和特性

答:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和
插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以
索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList
差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时
只需要记录本项的前后项即可,所以插入速度较快。

--------------------------------------------------
HashMap和Hashtable的区别

答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap
允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。

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

Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 
 

--------------------------------------------------

ArrayList和Vector的区别,HashMap和Hashtable的区别

答:就ArrayList与Vector主要从二方面来说.
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半

就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value

猜你喜欢

转载自blog.csdn.net/yrwan95/article/details/81561477