JDK源码
oytf10001
这个作者很懒,什么都没留下…
展开
-
JDK源码阅读之集合篇-HashMap(1)
1.回顾(ps:已经很熟悉的可以忽略这段,哈哈哈) 集合HashMap采用键值对<K,V>的形式存储数据。其中每个元素也叫条目集Entry<K,V>。 HashMap中常用的方法回顾:import java.util.HashMap;import java.util.Iterator;import java.util.Map.Entry;pub...原创 2019-05-03 11:22:27 · 254 阅读 · 0 评论 -
JDK源码阅读之集合篇-ConcurrentHashMap(1)
有了前面阅读HashMap源码的经验,阅读ConcurrentHashMap的源码就轻车熟路了,嘿嘿,小伙伴了,坐稳了,我要开车啊~~废话不多说,开始吧!1.设定目标1)熟悉ConcurrentHashMap的数据结构和存储结构2)熟悉ConcurrentHashMap中主要的属性、内部数据结构、主要方法的实现过程3)探索ConcurrentHashMap中出现的新技术和掌握自...原创 2019-07-29 17:45:09 · 166 阅读 · 0 评论 -
JDK源码阅读之集合篇-HashMap(2)
接上篇。注意:这里HashMap是使用的JDK8的版本。1.完成目标1)HashMap的数据结构和存储结构HashMap使用了“数组+链表+红黑树”的数据结构。存储结构如下图所示:HashMap采用了(数组+链表+红黑树)的复杂结构,数组中的每一个元素又称作桶(bin)。当一个桶中元素个数达到8个,并且桶的个数达到64时,则将这个桶中的链表转化为一颗红黑树。2...原创 2019-07-21 15:38:32 · 192 阅读 · 0 评论 -
JDK源码阅读之集合篇-HashMap(3)
这篇主要是回答一下第一篇中的问题。2.回答问题1)HashMap是线程安全的吗?如果不是线程安全的,会出现什么问题?能举个例子吗?不是,会出现数据覆盖的问题。比如当有两个线程往同一个空桶中插入数据时,后插入的有可能会覆盖前一个插入的。2)有其它的线程安全的解决办法吗?1.使用Hashtable替换(不是很推荐用这种方法,因为通过源码我们可以看到都是在get、put、remove...原创 2019-07-28 15:23:24 · 191 阅读 · 0 评论