内部类Node,实现Map.Entry(jdk1.8初次出现Node)
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {
static class Node<K,V> implements Map.Entry<K,V> {
final int hash;
final K key;
V value;
Node<K,V> next;
}
}
HashMap实体中常量部分
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {
/**
* 初始化容量,必须是2的N次方
*
* 1<<4即:1转换为二进制,向左移4位,右侧补零。00001(1) ----> 10000(16)
*/
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;
/**
* 最大容量为1左移30位,即1+30个0共31位,大约为int最大值的一半
* int共32位,首位0位正数 1位负数,不参与运算。因此最大值为2^31-1:共31个1
*/
static final int MAXIMUM_CAPACITY = 1 << 30;
/**
* 默认负载因子0.75
*/
static final float DEFAULT_LOAD_FACTOR = 0.75f;
/**
* 阈值,当拉链超过8