Java HashTable HashMap ConcurrentHashMap 对比选择

1.总结

这个面试中问到太多了,先来个结论
单线程用HashMap
多线程用ConcurrentHashMap,Java5+
HashTable基本是历史遗留问题了
除了HashMap不是外,HashTable和ConcurrentHashMap都是线程安全的

2.区别

HashTable是几乎每个方法都加了synchronized同步类,所以保障了线程安全,但是这个粒度过大,导致性能的下降
HashMap没有加锁,所以不安全,但是允许null值的存在(但这是有歧义的)

为什么ConcurrentHashMap不允许空值,这是设计者奇怪的设定

ConcurrentHashMap是Java5中新增的并发类,通过减少锁的粒度,提高并发度++
详细如下
对比图片

3.参考

stack overflow的回答
分析ConcurrentHashMap
Hashtable与ConcurrentHashMap区别

©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值