![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
你可能不清楚的Java细节
一头磕在键盘上
这个作者很懒,什么都没留下…
展开
-
你可能不清楚的Java细节(3)--JDK1.8中HashMap在出现hash碰撞时链表长度超过8就一定会变成红黑树?
如题,答案是:否.至少迄今为止零零散散看过的关于JDK1.8 HashMap的源码分析文章不下10个了.但印象中都是众口一词,说超过8就会转换成红黑树.但是很可惜,实际上不是的.原因核心代码如下(大体上调用关系就是 put->putVal->treeifyBin):putVal方法中相关部分// putVal方法中相关部分(put方法调用了putVal())if (binC...原创 2019-05-10 12:52:01 · 4536 阅读 · 21 评论 -
你可能不清楚的Java细节(2)--for及for-each各自循环适用的场景
本文参考资料基于JDK1.8,理论上也适用于之前的版本.严格的说,for-each是对for的增强,本质上也属于for循环.for和for-each一般无非也就是如下三种用法,其中第三种也就是我们平时所说的for-each://其中list为java.util.List类型//第一种写法for (int i=0, n=list.size(); i < n; i++){ list.get(i原创 2016-10-11 00:09:18 · 1140 阅读 · 0 评论 -
你可能不清楚的Java细节(1)--为什么Boolean的hashCode()方法返回值是1231或1237
为什么Boolean的hashCode()方法返回值是1231或1237?hashCode散列算法中为什么常用31作为乘数?原创 2016-08-09 17:11:40 · 5596 阅读 · 7 评论