前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2021-01-18:java中,HashMap的创建流程是什么?

2021-01-18:java中,HashMap的创建流程是什么?

原创
作者头像
福大大架构师每日一题
修改2021-01-22 10:52:41
4520
修改2021-01-22 10:52:41
举报

福哥答案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。


HashMap源码分析(jdk7)

JDK1.8中的HashMap实现

评论

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com