import java.util.Hashtable;
/**
* 不建议用
* Create by tate ON 2017/12/26.
*/
public class HashtableStudy {
public static void main(String[] args) {
//线程安全的
//默认构造函数,指定的容量大小是11;加载因子是0.75
//key和value都不允许为null,而HashMap中key和value都允许为null
// (key只能有一个为null,而value则可以有多个为null)。
// 但是如果在Hashtable中有类似put(null,null)的操作,编译同样可以通过,
// 因为key和value都是Object类型,但运行时会抛出NullPointerException异常,这是JDK的规范规定的
//Hashtable扩容时,将容量变为原来的2倍加1,而HashMap扩容时,将容量变为原来的2倍。
//Hashtable计算hash值,直接用key的hashCode(),而HashMap重新计算了key的hash值,
// Hashtable在求hash值对应的位置索引时,用取模运算,
// 而HashMap在求位置索引时,则用与运算,且这里一般先用hash&0x7FFFFFFF后,
// 再对length取模,&0x7FFFFFFF的目的是为了将负的hash值转化为正值,
// 因为hash值有可能为负数,而&0x7FFFFFFF后,只有符号外改变,而后面的位都不变。
// 不建议使用,用ConcurrentHashMap代替会更好
Hashtable hashtable = new Hashtable();
hashtable.put("11",11);
}
}
05-03