原文:曹工說JDK源碼(3)--ConcurrentHashMap,Hash算法優化、位運算揭秘

hashcode,有點講究 什么是好的hashcode,一般來說,一個hashcode,一般用int來表示, 位。 下面兩個hashcode,大家覺得怎么樣 只有第 位 從右到左 不一樣,好像也沒有所謂的好壞吧 那,我們再想想,hashcode一般怎么使用呢 在hashmap中,由數組 鏈表 紅黑樹組成,其中,數組乃重中之重,假設數組長度為 的n次方, hashmap的數組,強制要求長度為 的n次 ...

2020-06-08 22:53 0 864 推薦指數:

查看詳情

JDK源碼(2)--ConcurrentHashMap的多線程擴容,說白了,就是分段取任務

前言 先預先說明,我這邊jdk的代碼版本為1.8.0_11,同時,因為我直接在本地jdk源碼上進行了部分修改、調試,所以,導致大家看到的我這邊貼的代碼,和大家的不太一樣。 不過,我對源碼進行修改、重構時,會保證和原始代碼的功能、邏輯嚴格一致,更多時候,可能只是修改變量名,方便理解 ...

Mon Jun 08 06:45:00 CST 2020 0 979
JDK源碼(1)--ConcurrentHashMap,擴容前大家同在一個哈希桶,為啥擴容后,你去新數組的高位,我只能去低位?

如何計算,一對key/value應該放在哪個哈希桶 大家都知道,hashmap底層是數組+鏈表(不討論紅黑樹的情況),其中,這個數組,我們一般叫做哈希桶,大家如果去看jdk源碼,會發現里面有一些變量,叫做bin,這個bin,就是桶的意思,結合語境,就是哈希桶。 這里舉個例子,假設一個 ...

Sun Jun 07 07:08:00 CST 2020 0 691
Spring Boot源碼(5)-- 怎么從properties文件讀取bean

寫在前面的話 相關背景及資源: Spring Boot源碼(1)-- Bean Definition到底是什么,附spring思維導圖分享 Spring Boot源碼(2)-- Bean Definition到底是什么,咱們對着接口,逐個方法講解 Spring Boot ...

Wed Dec 25 06:28:00 CST 2019 1 1811
Redis源碼(4)-- 通過redis server源碼來理解 listen 函數中的 backlog 參數

文章導航 Redis源碼系列的初衷,是幫助我們更好地理解Redis,更懂Redis,而怎么才能懂,光看是不夠的,建議跟着下面的這一篇,把環境搭建起來,后續可以自己閱讀源碼,或者跟着我這邊一起閱讀。由於我用c也是好幾年以前了,些許錯誤在所難免,希望讀者能不吝指出。 Redis源碼 ...

Tue Apr 14 16:26:00 CST 2020 2 724
Redis源碼(3)-- redis server 啟動過程完整解析(中)

文章導航 Redis源碼系列的初衷,是幫助我們更好地理解Redis,更懂Redis,而怎么才能懂,光看是不夠的,建議跟着下面的這一篇,把環境搭建起來,后續可以自己閱讀源碼,或者跟着我這邊一起閱讀。由於我用c也是好幾年以前了,些許錯誤在所難免,希望讀者能不吝指出。 Redis源碼 ...

Mon Apr 13 16:33:00 CST 2020 0 1198
 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM