集合Collection各实现类API解析
woaiwym
这个作者很懒,什么都没留下…
展开
-
谈谈HashMap线程不安全的体现
HashMap的原理以及如何实现,之前在JDK7与JDK8中HashMap的实现中已经说明了。那么,为什么说HashMap是线程不安全的呢?它在多线程环境下,会发生什么情况呢?1. resize死循环我们都知道HashMap初始容量大小为16,一般来说,当有数据要插入时,都会检查容量有没有超过设定的thredhold,如果超过,需要增大Hash表的尺寸,但是这样一来,整个Hash表里的元素都需要被...转载 2018-06-13 10:48:19 · 557 阅读 · 0 评论 -
ConcurrentHashMap在JDK7和JDK8中的不同实现原理
并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一致性的要求(这点好像CAP理论啊 O(∩_∩)O)。ConcurrentHashMap的设计与实现非常精巧,大量的利用了volatile,f...转载 2018-06-13 10:52:51 · 5524 阅读 · 1 评论 -
Hashtable,HashMap,ConcurrentHashMap 底层实现原理与线程安全问题
术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。 哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。线程不安全的HashMap因为多线程环境下,使用...翻译 2018-06-08 14:12:20 · 2026 阅读 · 0 评论 -
HashMap初始容量与负载因子设置如何影响HashMap性能
下面是HashMap的一个构造函数,两个参数initialCapacity,loadFactor这关系HashMap的迭代性能。 1 /** 2 * Constructs an empty <tt>HashMap</tt> with the specified initial 3 * capacity and load factor. 4 ...翻译 2018-06-08 14:35:13 · 5437 阅读 · 3 评论