HashMap、Hashtable、ConcurrentHashMap的原理与区别

 HashTable

      底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低。

  HashMap

         底层数组+链表实现,可以存储null键和null值,线程不安全。

 ConcurrentHashMap

  • 底层采用分段的数组+链表实现,线程安全。
  • Hashtable的synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术
posted @ 2020-03-01 14:33  为了梦想努力  阅读(256)  评论(0)    收藏  举报