隨筆分類 - JDK源碼解析
摘要:曹工說JDK源碼(1)--ConcurrentHashMap,擴容前大家同在一個哈希桶,為啥擴容后,你去新數組的高位,我只能去低位? 曹工說JDK源碼(2)--ConcurrentHashMap的多線程擴容,說白了,就是分段取任務 曹工說JDK源碼(3)--ConcurrentHashMap,Has
閱讀全文
摘要:hashcode,有點講究 什么是好的hashcode,一般來說,一個hashcode,一般用int來表示,32位。 下面兩個hashcode,大家覺得怎么樣? 0111 1111 1111 1111 1111 1111 1111 1111 A 1111 1111 1111 1111 1111 11
閱讀全文
摘要:前言 先預先說明,我這邊jdk的代碼版本為1.8.0_11,同時,因為我直接在本地jdk源碼上進行了部分修改、調試,所以,導致大家看到的我這邊貼的代碼,和大家的不太一樣。 不過,我對源碼進行修改、重構時,會保證和原始代碼的功能、邏輯嚴格一致,更多時候,可能只是修改變量名,方便理解。 大家也知道,jd
閱讀全文
摘要:#如何計算,一對key/value應該放在哪個哈希桶 大家都知道,hashmap底層是數組+鏈表(不討論紅黑樹的情況),其中,這個數組,我們一般叫做哈希桶,大家如果去看jdk的源碼,會發現里面有一些變量,叫做bin,這個bin,就是桶的意思,結合語境,就是哈希桶。 這里舉個例子,假設一個hashma
閱讀全文

浙公網安備 33010602011771號