2021-01-18:java中,HashMap的创建流程是什么?
发布日期:2021-05-04 20:00:48 浏览次数:15 分类:技术文章

本文共 559 字,大约阅读时间需要 1 分钟。

福哥答案2021-01-18:

jdk1.7创建流程:

三种构造器。
1.初始容量不能为负数,默认16。
2.初始容量大于最大容量时,初始容量等于最大容量。
3.负载因子必须大于0,默认0.75。
4.根据初始容量算出容量,容量是2的n次幂。
5.设置负载因子loadFactor 。
6.设置容量极限threshold。
7.设置table数组。实在抱歉,这个地方弄错了,没有第7步,2021-01-21修改。
8.调用init()空方法。

参数为集合的构造器。

1.调用有两个参数的构造器。
2.inflateTable方法。初始化table数组。
3.putAllForCreate方法。遍历参数,放入当前map。

jdk1.8创建流程:

两种构造器。
1.初始容量不能为负数,默认16。
2.初始容量大于最大容量时,初始容量等于最大容量。
3.负载因子必须大于0,默认0.75。
4.设置负载因子loadFactor 。
5.设置容量极限threshold,调用tableSizeFor方法,大于initialCapacity的最小的二次幂数值 。。

无参构造器。

1.只设置了负载因子,其他什么都没做。

参数为集合的构造器。

1.设置负载因子。
2.putMapEntries方法。遍历参数,放入当前map。


上一篇:2021-01-21:java中,HashMap的读流程是什么?
下一篇:2021-01-17:java中,HashMap底层数据结构是什么?

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月17日 12时24分59秒