本文是基于jdk8_271版本进行分析的。
Hashtable与HashMap一样,是一个存储key-value的双列集合。底层是基于数组+链表实现的,没有红黑树结构。Hashtable默认初始化容量为11,Hashtable也会动态扩容,与HashMap不同的是,每次扩容的容量是原容量2倍+1。Hashtable的key和value都不允许为null。Hashtable在方法上都加了synchronized同步锁。所以Hashtable是线程安全的,同时Hashtable的效率也相对较低。
实现继承关系
1 public class Hashtable<K,V> 2 extends Dictionary<K,V> 3 implements Map<K,V>, Cloneable, java.io.Serializable