![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
从源码开始
文章平均质量分 76
本栏目所有内容均为阅读源码的总结
星雨初晨
代码书写人生
展开
-
ConcurrentHashMap Java1.8 源码解析
前面的帖子已经详细说明了 HashMap的实现原理,但我们知道HashMap不是一个线程安全的容器。为了保证多线程数据安全,java JUC包提供了HashMap的线程安全版本 —— ConcurrentHashMap本文所列代码取自 Java version “1.8.0_261”为什么HashMap不是线程安全的...原创 2021-03-23 20:25:44 · 189 阅读 · 0 评论 -
遍历HashMap源码——红黑树原理、HashMap红黑树实现与反树型化(三)
本章将是HashMap源码的最后一章,将介绍红黑树及其实现,HashMap的remove方法与反树型化。长文预警~~遍历HashMap源码——HashMap红黑树实现与反树型化什么是红黑树二叉查找树红黑树原理左旋右旋插入节点删除节点HashMap的红黑树实现什么是红黑树二叉查找树理解红黑树的前提必须知道红黑树是什么。它的本质就是一个特殊的二叉查找树。那么问题来了,什么是二叉查找树?左子树上所有结点的值均小于或等于它的根结点的值。右子树上所有结点的值均大于或等于它的根结点的值。左、右子树也分别原创 2021-03-16 15:26:46 · 813 阅读 · 0 评论 -
遍历HashMap源码——put实现、扩容与树型化(二)
接上篇,本文主要介绍HashMap put方法的机制put方法本次模拟场景分析 HashMap hashMap = new HashMap(); for(int i = 0; i < 11; i++){ //添加12个元素 hashMap.put(i, i); }第一行代码上篇我们已经逐行对源码进行了分析,接下的put方法会发生什么呢,继续来看源码首先,我们来总结一下当第一个元素进入之后当下的变量值 //第一个元素值 [0,0] tran原创 2021-03-15 23:00:59 · 228 阅读 · 2 评论 -
遍历HashMap源码——类结构与构造方法(一)
HashMap不多废话,直接进入正题。逐行分析HashMap源码~~ 走起(本文所使用 Java version “1.8.0_261”)总体结构变量说明静态变量默认初始化容量 必须是2的N次幂 /** * The default initial capacity - MUST be a power of two. */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16原创 2021-03-15 16:24:28 · 105 阅读 · 0 评论