今天我们接着来学习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