![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JDK 源码分析
幼儿园长
这个作者很懒,什么都没留下…
展开
-
HashMap 原理之 HashMap 的存储结构(基于 JDK1.8)
在上篇文章中解答了初步认识了 HashMap 的扩容,初始化以及容量的实现,今天接着上篇文章来讲,解决一下第二个问题。Q2. 底层的存储数据结构?老规矩,在开始之前还是先把常用的几个属性掏出来/** * 树化的阈值 */static final int TREEIFY_THRESHOLD = 8;/** * 反树化的阈值 */static final int UNTREEIFY_THRESHOLD = 6;/** * 最小树节点容量 */static final int MIN_原创 2020-09-03 01:01:08 · 668 阅读 · 0 评论 -
HashMap 原理之 HashMap 初始化(基于 JDK1.8)
基于 JDK1.8 进行分析首先说几个问题,然后根据问题去分析具体情况Q1. 默认容量是多少,负载因子是多少,扩容倍数?Q2. 底层的存储数据结构?Q3. 如何处理 hash 冲突?Q4. 如何计算一个 key 的 hash 值?Q5. 数组的长度为何是 2 的幂次方?Q6. 扩容查找过程?开始之前,先看一下 HashMap 的几个基本属性。/** * 默认的初始化容量,必须是 2 的 幂次方 */static final int DEFAULT_INITIAL_CAPACIT..原创 2020-09-02 00:58:03 · 6157 阅读 · 1 评论