ConurrentHashMap和Hashtable的区别

相同之处:

  1. 都是key:value 格式的数据结构
  2. 两者都适用于多线程环境
  3. 都实现了Map接口 (ConurrentHashMap继承AbstractMap ,AbstractMap实现Map接口)
  4. key 和 value 都不能是null (相比HashMap来说 HashMap的key和value都可以是null)

不同之处:

  1. HashTable 只是在方法上加了synchronized锁 ,ConurrentHashMap是用的分段锁机制(jdk1.7)
  2. 数据量大的情况下 HashTable性能会大大降低
  3. jdk1.8 ConurrentHashMap 摒弃了分段机制,改为了数组+链表+红黑树+CAS和synchronized实现
  4. 现在很少用HashTable 如果要用 就使用ConurrentHashMap
  5. 如果面试是笔试的话 寥寥几句概括就行 ,如果是和面试官面对面的话,那可以好好扯一下ConurrentHashMap源码实现方面的东西(说实话 我不大会写这些东西)
上一篇:HashMap 和 HashTable 的区别


下一篇:HashMap 与HashTable的区别