JDK1.8中的HashMap.HashTable, ConcurrentHashMap有什么区别?

Posted travisgrady

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK1.8中的HashMap.HashTable, ConcurrentHashMap有什么区别?相关的知识,希望对你有一定的参考价值。

JDK1.8中的HashMap,HashTable,ConcurrentHashMap有什么区别?

答:HashMap是线程不安全的,底层采用数组+链表+红黑树的结构

  HashTable是线程安全的,因为使用了Synchronized锁住了整个table,底层采用了数组+链表

  ConcurrentHashMap是线程安全的,采用了CAS+同步锁Synchronized对链表头节点进行锁定,底层使用数组+链表+红黑树

  HashMap的key和value可以是null,其他两个不行。

以上是关于JDK1.8中的HashMap.HashTable, ConcurrentHashMap有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

Java多线程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

HashMap Hashtable区别

对hashmap,hashset,hashtable的理解

HashMap Hashtable LinkedHashMap 和TreeMap

与java hashmap / hashtable相比,python字典搜索复杂度[重复]