社区
Java SE
帖子详情
扩容机制中的capacity初始值为什么是16,可不可以自定义成15,为什么一定要是2的指数次方,求指教,感谢
jvliao
2020-12-31 05:09:41
...全文
7357
2
打赏
收藏
扩容机制中的capacity初始值为什么是16,可不可以自定义成15,为什么一定要是2的指数次方,求指教,感谢
[图片]
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
一个帅逼
2020-12-31
打赏
举报
回复
你可以设置15,但是实际会被转换成16,可以看看源码里的tableSizeFor()方法,通过这个方法会将你设置的capacity-1通过位移运算变为最接近的下一个2的n次幂,设置为2的n次方主要是为了快速定位到数组的slot上,2的n次方-1的二进制会使当前capacity的低位全部变为1,再通过与hahs值的&运算可以得到数组slot,区别于取模运算,取模可以设置任何值,但是取模运算效率没有&运算高
是赵敢敢啊
2020-12-31
打赏
举报
回复
写成2的次幂的话计算机做位移预算比较快,应该是这样
Java开发7年,今年面了5家,拿到饿了么P7offer,2024年最新快手sre面试
10.
扩容机制
中
的
ca
pac
ity
初始值
为什么是
16
,
可不可以
自定义
成
15
,为什么
一定
要是2的
指数
次方
。17.MySQL使用这种隔离级别时,是如何解决幻读问题的(引申,理解其他并发问题的解决原理)
16
.MySQL用的隔离级别是什么,...
10月面试快要结束了!整理下阿里、腾讯、京东的高频面试题,你能答多少,反正我不会
前言: 金九银十基本技术,很多朋友也基本都收到了大厂offer,今天为大家整理下目前大厂问到的面试题,也希望大家都能够...
扩容机制
中
的
ca
pac
ity
初始值
为什么是
16
,
可不可以
自定义
成
15
,为什么
一定
要是2的
指数
次方
金九银十已然结束!腾讯、阿里、字节跳动等大厂的最新面试题总结
前言: 金九银十已经过去了,很多朋友也基本都收到了大厂offer,今天为大家整理下目前大厂问到的...
扩容机制
中
的
ca
pac
ity
初始值
为什么是
16
,
可不可以
自定义
成
15
,为什么
一定
要是2的
指数
次方
简单介绍一下hash算法,
金九银十已然结束!蚂蚁金服、美团、京东等大厂的最新面试题总结
前言: 金九银十已经过去了,很多朋友也基本都收到了大厂offer,今天为大家整理下目前大厂问到的面试...
扩容机制
中
的
ca
pac
ity
初始值
为什么是
16
,
可不可以
自定义
成
15
,为什么
一定
要是2的
指数
次方
简单介绍一下hash算
HashMap 的长度为什么是 2 的幂
次方
快速计算索引:HashMap 使用取模运算来计算元素在...※扩容效率(快速计算各元素的新下标):当数组长度为 2 的幂
次方
时,HashMap 进行扩容时可以通过位运算来重新计算元素的索引,而不需要重新计算哈希码,提高了扩容
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章