HashMap:
查询和插入速度极快,但是线程不安全,在多线程情况下在扩容的情况下可能会形成闭环链路,耗光cpu资源。
LinkedHashMap:
基本和HashMap实现类似,多了一个链表来维护元素插入的顺序,因此维护的效率会比HashMap略低。但是因为有链表的存在,遍历效率会高于HashMap。
HashTable:
线程安全,但性能较差,已经不推荐使用
ConcurrentHashMap:
线程安全,而且采用分段锁的方式进行数据同步,因此相对于Hashtable来说,效率要高。但是因为引入了段的概念,所以每次元素插入或者获取,需要进行两次哈希算法,第一次确定到该元素位于哪一段,第二次才能真正确定到元素位置。因此效率会低于HashMap。不过在多线程情况下,这种性能的牺牲换取数据安全是非常值得的。因此在多线程的情况下应该首选ConcurrentHashMap。
--------------------- 本文来自 互联网十年老兵- 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/happy_coding_life/article/details/80381293?utm_source=copy
相关推荐
Java-concurrent-collections-concurrenthashmap-blockingqueue.pdf
java源码剖析-ConcurrentHashMap
ConcurrentHashMap使用了分段锁(Segment)来实现并发的读写操作,每个Segment都相当于一个小的HashMap,将整个哈希表分成多个部分。这样可以同时进行多个线程的并发读写操作,不会阻塞其他线程的访问。 需要注意的...
Java 7_ConcurrentHashMap.jpg
Java 多线程与并发(13_26)-JUC集合_ ConcurrentHashMap详解
第一步是用单线程构建一个2倍容量的nextTable 第二步就是用多线程去遍历table里面所有的Node 第三步,当所有数据都复制到nextTable之后,将
这份文档详细讨论了Java中HashMap的各个方面,包括其内部机制、...总的来说,这份文档对HashMap的各个方面进行了全面而详细的阐述,既适合作为面试准备的参考资料,也适用于希望深入了解HashMap内部机制的Java开发者。
这份文件详细探讨了Java中HashMap的各个方面,包括其内部机制、...总的来说,这份文件对HashMap的各个方面进行了全面而详细的阐述,既适合作为面试准备的参考资料,也适用于希望深入了解HashMap内部机制的Java开发者。
HashMap,HashTable,ConcurrentHashMap之关联.docx
java7-8中的 HashMap和ConcurrentHashMap全解析
涵盖绝大部分HashMap与ConcurrentHashMap的面试题 附带答案
java7-8中的 HashMap和ConcurrentHashMap全解析 如果你想了解底层的逻辑就来看看吧
阿里面试题:ConcurrentHashMap为什么是线程安全的? ConcurrentHashMap,其实是线程安全的HashMap,所以阅读ConcurrentHashMap,建议 先阅读一下两篇介绍HashMap的文章 你真的懂大厂面试题:HashMap吗? jdk1.7 ...
hashmap和hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 1. HashMap几乎可以等价于Hashtable,...
源码分析见我博文:http://blog.csdn.net/wabiaozia/article/details/50684556
HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。 HashMap 实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆。 HashMap...
HashTable、ConcurrentHashMap.pdf
1.说一下 HashMap 的实现原理? 2.HashMap在JDK1.7和JDK1.8中有哪些不同?HashMap的底层实现? 3.HashMap的put方法的具体流程? 4.HashMap的扩容操作是怎么实现的? 5.HashMap是怎么解决哈希冲突的? 6.什么是哈希?...
hashmap如何解决hash冲突,为什么hashmap中的链表需要转成红黑树? hashmap什么时候会触发扩容? jdk1.8之前并发操作hashmap时为什么会有死循环的问题? hashmap扩容时每个entry需要再计算一次hash吗? hashmap的...