ConcurrentHashMap HashMap Hashtable区别

1. HashMap Hashtable,ConcurrentHashMap区别

1) 继承关系不同

 

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

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

 

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值