1、成员变量:

1.1static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16

hash表的默认初始化容量为2的4次方。

1.2static final int MAXIMUM_CAPACITY = 1 << 30;

表示最大容量为2的30次方。

1.3static final float DEFAULT_LOAD_FACTOR = 0.75f;

表示默认的加载因子;

1.4static final int TREEIFY_THRESHOLD = 8;

表示树化的阈值。

1.5static final int UNTREEIFY_THRESHOLD = 6;

表示非树化的阈值

1.6static final int MIN_TREEIFY_CAPACITY = 64;

树化的最小容量

1.7(jdk1.8中的node节点) alt

2.构造器,将默认的负载因子传给了真实的负载因子

alt

3.构造器2,传入一个map用于构造hashmap alt

4.构造器3,可以传入初始化容量的构造器,阿里规约要求创建一个hashmap时需要传入一个容量,原因在于数组可能会扩容,hashmap的扩容比较复杂。 alt

这个构造器又会调用其余的构造器:

alt