HashTable
1.底层是一个数组,Entry类型的数组,初始化大小为11,实现了Map.Entry
public Hashtable() {
this(11, 0.75F);
}
2.临界值为容量*0.75 向下取整
3.扩容:在原有的基础上*2(向左位移一位)+1
protected void rehash() {
int var1 = this.table.length;
Hashtable.Entry[] var2 = this.table;
int var3 = (var1 << 1) + 1;
if (var3 - 2147483639 > 0) {
if (var1 == 2147483639) {
return;
}
var3 = 2147483639;
}
hashmap线程不安全 hashtable线程安全
在hashtable的底层可以看出,都是由synchronize修饰的方法,可以实现线程同步。