随笔分类 -  JDK源码解析

摘要:曹工说JDK源码(1)--ConcurrentHashMap,扩容前大家同在一个哈希桶,为啥扩容后,你去新数组的高位,我只能去低位? 曹工说JDK源码(2)--ConcurrentHashMap的多线程扩容,说白了,就是分段取任务 曹工说JDK源码(3)--ConcurrentHashMap,Has 阅读全文
posted @ 2020-06-11 15:08 三国梦回 阅读(1025) 评论(1) 推荐(3) 编辑
摘要:hashcode,有点讲究 什么是好的hashcode,一般来说,一个hashcode,一般用int来表示,32位。 下面两个hashcode,大家觉得怎么样? 0111 1111 1111 1111 1111 1111 1111 1111 A 1111 1111 1111 1111 1111 11 阅读全文
posted @ 2020-06-08 22:53 三国梦回 阅读(1584) 评论(0) 推荐(1) 编辑
摘要:前言 先预先说明,我这边jdk的代码版本为1.8.0_11,同时,因为我直接在本地jdk源码上进行了部分修改、调试,所以,导致大家看到的我这边贴的代码,和大家的不太一样。 不过,我对源码进行修改、重构时,会保证和原始代码的功能、逻辑严格一致,更多时候,可能只是修改变量名,方便理解。 大家也知道,jd 阅读全文
posted @ 2020-06-07 22:45 三国梦回 阅读(1186) 评论(0) 推荐(0) 编辑
摘要:#如何计算,一对key/value应该放在哪个哈希桶 大家都知道,hashmap底层是数组+链表(不讨论红黑树的情况),其中,这个数组,我们一般叫做哈希桶,大家如果去看jdk的源码,会发现里面有一些变量,叫做bin,这个bin,就是桶的意思,结合语境,就是哈希桶。 这里举个例子,假设一个hashma 阅读全文
posted @ 2020-06-06 23:08 三国梦回 阅读(926) 评论(0) 推荐(1) 编辑