/**
* The default initial capacity - MUST be a power of two.
* 默认容量必须是2的n次方,默认大小为16
*/staticfinalint DEFAULT_INITIAL_CAPACITY = 16;
/**
* The maximum capacity, used if a higher value is implicitly specified
* by either of the constructors with arguments.
* MUST be a power of two <= 1<<30.
* 最大容量2的30次方
*/staticfinalint MAXIMUM_CAPACITY = 1 << 30;
/**
* The load factor used when none specified in constructor.
* 默认负载因子,默认的扩容标准,超过总容量的3/4开始扩容
*/staticfinalfloat DEFAULT_LOAD_FACTOR = 0.75f;
/**
* The table, resized as necessary. Length MUST Always be a power of two.
* 数组的个数,长度同样必须是2的n次方
*/transient Entry[] table;
/**
* The number of key-value mappings contained in this map.
* map中所有元素的个数
*/transientint size;
/**
* The next size value at which to resize (capacity * load factor).
* 下一次rehash的阀值
* @serial
*/int threshold;
/**
* The load factor for the hash table.
*负载因子,默认为0.75
* @serial
*/finalfloat loadFactor;
/**
* The number of times this HashMap has been structurally modified
* Structural modifications are those that change the number of mappings in
* the HashMap or otherwise modify its internal structure (e.g.,rehash).
* This field is used to make iterators on Collection-views of
* the HashMap fail-fast. (See ConcurrentModificationException).
* hashmap被修改的次数
* 此处的修改是指元素个数的修改,或者是指修改内部结构例如:rehash
* 该属性主要用于迭代器的快速失败判断
*/transientvolatileint modCount;