【HashMap JDK1.7】静态常量和成员变量


翻译来源 java.util.HashMap JDK1.7

HashMap API 所有翻译,请查看翻译目录


静态常量

1. 默认初始容量

默认初始容量-必须是2次幂。(aka = also known as = 亦称为;别名 )

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

2. 最大容量

如果任何一个具有参数的构造函数隐式指定了(is implicitly specified by)一个更大的值,则使用的该最大容量。必须是2次幂<= 1<<30

static final int MAXIMUM_CAPACITY = 1 << 30;

3. 默认装载因子

在构造函数中未指定加载因子时使用。

static final float DEFAULT_LOAD_FACTOR = 0.75f;

4. 空表

一个空表实例,以便在表没有膨胀时共享。

static final Entry<?,?>[] EMPTY_TABLE = {};

5. 备选哈希阈值默认值

map容量的默认阈值,在此阈值之上,字符串键使用可选哈希。可选哈希降低了由于字符串键的弱哈希代码计算而导致的冲突发生率。

通过定义系统属性jdk.map.althash.threshold可以覆盖此值。属性值1强制始终使用可选哈希,而-1值确保从不使用可选哈希。

static final int ALTERNATIVE_HASHING_THRESHOLD_DEFAULT = Integer.MAX_VALUE;

成员变量

1. table

表,根据需要调整大小。长度必须总是2次幂。

transient Entry<K,V>[] table = (Entry<K,V>[]) EMPTY_TABLE;

2. size

该map中包含的key-value对的数量。

transient int size;

3. threshold 阈值

用于调整大小的下一个 size 值,(capacity * load factor) 。

int threshold;

4. loadFactor 装载因子

该哈希表的装载因子。

如果table == EMPTY_TABLE,那么这是膨胀时创建表的初始容量。

final float loadFactor;

5. modCount结构化修改次数

HashMap已被结构化修改的次数。结构化修改是指改变HashMap中映射的数量,或者以其他方式修改其内部结构(比如,rehash)的修改。该字段用于使该HashMap的集合视图上的迭代器们快速失败。(参见ConcurrentModificationException

transient int modCount;

6. entrySet 视图

private transient Set<Map.Entry<K,V>> entrySet = null;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值