Java HashTable HashMap ConcurrentHashMap 对比选择
来源:互联网 发布:虎牙象棋勇哥是软件 编辑:程序博客网 时间:2024/05/21 05:17
1.总结
这个面试中问到太多了,先来个结论
单线程用HashMap
多线程用ConcurrentHashMap,Java5+
HashTable基本是历史遗留问题了
除了HashMap不是外,HashTable和ConcurrentHashMap都是线程安全的
2.区别
HashTable是几乎每个方法都加了synchronized同步类,所以保障了线程安全,但是这个粒度过大,导致性能的下降
HashMap没有加锁,所以不安全,但是允许null值的存在(但这是有歧义的)
为什么ConcurrentHashMap不允许空值,这是设计者奇怪的设定
ConcurrentHashMap是Java5中新增的并发类,通过减少锁的粒度,提高并发度++
详细如下
3.参考
stack overflow的回答
分析ConcurrentHashMap
Hashtable与ConcurrentHashMap区别
0 0
- Java HashTable HashMap ConcurrentHashMap 对比选择
- HashMap、HashSet、Hashtable、concurrentHashmap、treemap、linkedhashmap对比
- HashMap,HashTable,ConcurrentHashMap,ConcurrentSkipListMap
- HashMap、ConcurrentHashMap、HashTable、HashSet
- ConcurrentHashMap、HashMap、HashTable区别
- HashMap、HashTable、ConcurrentHashMap、Queue
- HashMap HashTable ConcurrentHashmap
- hashMap ,hashTable ,concurrentHashMap区别
- HashMap、HashTable、ConcurrentHashMap
- HashMap HashTable ConcurrentHashMap区别
- HashMap HashTable和ConcurrentHashMap
- Hashtable,HashMap,ConcurrentHashMap
- HashMap HashTable ConCurrentHashMap
- hashmap 、hashtable、 ConcurrentHashMap总结
- HashTable/HashMap/ConcurrentHashMap
- HashMap、HashTable、ConcurrentHashMap
- HashMap、Hashtable与ConcurrentHashMap
- HashMap+ConcurrentHashMap+HashTable
- 前端技能练习:javascript基础:修改this指针
- 13. 总结 JavaSE
- 树状数组(二)与poj2155
- WIN10下使用qt mingw64_4.9.2编译box2d
- 标识符
- Java HashTable HashMap ConcurrentHashMap 对比选择
- [mmc subsystem] mmc core(第二章)——数据结构和宏定义说明
- Codeforces Round #397(Div. 1 + Div. 2 combined)D. Artsem and Saunders【思维+乱搞】
- 终端使用别名记住登录ssh的ip登录
- JavaWeb起航篇:web通信原理
- RabbitMQ之队列优先级
- PAT甲级1109
- Log4J
- 石子合并 (区间dp)