今天我們接着來學習HashMap的源碼,HashMap的數據結構與ConcurrentHashMap的數據結構相同,所以學好HashMap對後面學習ConcurrentHashMap很有幫助。
目錄
- 基本的全局常量
- HashMap的數據結構
- HashMap的散列函數
- 散列衝突的處理
- HashMap的擴容機制
- put 方法的源碼解析
- get 方法和remove的源碼解析
環境
本代碼基於JDK1.8
基本的全局常量
- 默認初始化的容器大小16:
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 1 左移4位
- 最大的數據容量2的30次方。也就是說最多存放2的30次方個數據
static