🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄、CSDN博客专家
🌹简历模板、学习资料、面试题库、技术互助🌹文末获取联系方式 📝
系列文章目录
[Java基础] StringBuffer 和 StringBuilder 类应用及源码分析
[Java基础] 数组应用及源码分析
[Java基础] String,分析内存地址,源码
[JDK8环境下的HashMap类应用及源码分析] 第一篇 空构造函数初始化
[JDK8环境下的HashMap类应用及源码分析] 第二篇 看源码了解HashMap的扩容机制

文章目录
- 系列文章目录
- 效果展示
- 1、步骤拆解
- 2、使用空构造函数实例化HashMap
- 3、使用Java的反射机制,去获取threshold 、 loadFactor 、capacity值
- 4、打印刚初始化的HashMap的元素数量、阈值、容量
- 5、添加1条数据之后打印HashMap的元素数量、阈值、容量
- 6、添加到11条数据之后打印HashMap的元素数量、阈值、容量
- 7、添加到12条数据之后打印HashMap的元素数量、阈值、容量
- 8、添加到13条数据之后打印HashMap的元素数量、阈值、容量
- 关键字
- 相关项目实现推荐:
- [查看更多博主首页更多实战项目 >>>](https://blog.csdn.net/s445320)
效果展示
map里的元素数量:0
初始化阶段,threshold是 int类型的默认值0,此时的map下一次触发扩容的阈值:0
map下一次触发扩容的真实阈值比率:0.75
map的容量:16
------------------------------------
map里的元素数量:1
map下一次触发扩容的阈值:12
map下一次触发扩容的真实阈值比率:0.75
map的容量:16
------------------------------------
map里的元素数量:11
map下一次触发扩容的阈值:12
map下一次触发扩容的阈值比率:0.75
map的容量:16
------------------------------------
map里的元素数量:12
map下一次触发扩容的阈值:12
map下一次触发扩容的阈值比率:0.75
map的容量:16
------------------------------------
map里的元素数量:13
map下一次触发扩容的阈值:24
map下一次触发扩容的阈值比率:0.75
map的容量:32
------------------------------------
public static void
本文通过分析JDK8环境下HashMap的源码,详细讲解了HashMap在不同元素数量下的扩容机制,包括空构造函数初始化、获取threshold、loadFactor和capacity的值,以及在添加元素后如何触发和执行扩容操作的过程。
订阅专栏 解锁全文
2336

被折叠的 条评论
为什么被折叠?



