HashMap 类中包含3个和扩容相关的常量:
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16
static final int MAXIMUM_CAPACITY = 1 << 30;
static final float DEFAULT_LOAD_FACTOR = 0.75f;
其中,DEFAULT_INITIAL_CAPACITY 是初始容量,默认是 2^4 = 16;
MAXIMUM_CAPACITY是最大容量,默认是 2^30;
DEFAULT_LOAD_FACTOR是增长因子,当占用率超过这个值时,就会触发扩容操作。
例如,当前大小是16,当占用超过16*0.75=12时,就把容量扩充到16*2=32。