随笔分类 - java source analysis
源码分析
摘要:1.0 数据结构 抛弃了 JDK 1.7 中原有的 Segment 分段锁,而采用了 CAS + synchronized 来保证并发安全性。 将 JDK 1.7 中存放数据的 HashEntry 改为 Node,但作用是相同的。 2.0 put方法 put方法总结 如果桶中的第一个元素的 hash
阅读全文
摘要:1.0 数据结构 ConcurrentHashMap 是由 Segment 数组 结构和 HashEntry 数组 结构组成。 Segment 是一种可重入锁 ReentrantLock,在 ConcurrentHashMap 里扮演锁的角色,HashEntry 则用于存储键值对数据。 Concur
阅读全文
摘要:HashTable jdk1.7currentHashMap jdk1.8currentHashMap ConcurrentHashMap线程安全的具体实现方式/底层具体实现 JDK1.7(上面有示意图) 首先将数据分为一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据时,
阅读全文
摘要:1.0 数据结构 2.0 存储流程 3.0 数组元素 & 链表节点的实现类 HashMap中的数组元素 & 链表节点 采用 Node类 实现,与jdk1.7相比只是把Entry换了个名字 HashMap中的红黑树节点 采用 TreeNode 类 实现 4.0 源码分析 4.1 hash扰动函数的变更
阅读全文
摘要:1.0 类的定义 2.0 数据结构 2.1 简要描述 HashMap 采用的数据结构 = 数组 + 链表 该数据结构也被称为拉链法,具体描述如下: 2.2 示意图 2.3 简单存储流程 2.4 数组&链表元素的实现类 HashMap中的数组元素和链表节点采用Entry类实现 Entry对象本质 =
阅读全文