HashMap、Hashtable、ConcurrentHashMap的原理与区别
HashTable
底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低。
HashMap
底层数组+链表实现,可以存储null键和null值,线程不安全。
ConcurrentHashMap
- 底层采用分段的数组+链表实现,线程安全。
- Hashtable的synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术

浙公网安备 33010602011771号