HashMap和HashTable、ConcurrentHashMap区别?

 相同点:

1. HashMap和Hashtable都实现了Map接口

2. 都可以存储key-value数据

不同点:

1. HashMap可以把null作为key或value,HashTable不可以

2. HashMap线程不安全,效率高。HashTable线程安全,效率低。

3. HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast 的。 什么是fail-fast? 就是最快的时间能把错误抛出而不是让程序执行。

Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。 ConcurrentHashMap将整个Map分为N个segment(类似HashTable),可以提供相同的线程安全,但是 效率提升N倍,默认N为16。

你可能感兴趣的:(Java面试,java,开发语言)