1. HashMap Hashtable,ConcurrentHashMap区别

1) 继承关系不同

ConcurrentHashMap HashMap Hashtable区别

ConcurrentHashMap HashMap Hashtable区别

ConcurrentHashMap HashMap Hashtable区别

 

2) HashMap线程不安全, ConcurrentHashMap,Hashtable线程安全,但是ConcurrentHashMap的效率比Hashtable高,ConcurrentHashMap已经可以完全取代Hashtable

HashTable 使用synchronized修饰方法实现线程安全,即锁住整个HashTable,效率低,ConcurrentHashMapConcurrentHashMap使用CAS和synchronized修饰实现线程安全,但synchronized是锁数据的单个元素上Node<K,V>(如下图中红色Node<K,V>),(详细讲解将在后续的concurrentHashMap源码解析中讲解)

ConcurrentHashMap HashMap Hashtable区别

 

3) 扩充不同

Hashtable初始size为11,扩容:newsize = olesize*2+1

HashMap,ConcurrentHashMap 初始size为16,扩容:newsize = oldsize*2,size一定为2的n次幂

4) key是否可以为null

HashMap的key可以为null,Hashtable ,ConcurrentHashMap 的key都不可以为nul

 

 

相关文章:

  • 2022-01-23
  • 2021-09-16
  • 2021-12-07
  • 2021-04-11
  • 2021-09-11
  • 2021-11-24
  • 2021-06-03
猜你喜欢
  • 2021-10-23
  • 2021-10-20
  • 2021-08-03
  • 2021-07-12
  • 2021-08-21
  • 2022-12-23
  • 2021-10-15
相关资源
相似解决方案