- Hashtable的方法加了syncronized锁,线程安全但效率低。
- Hashtable没有链表转红黑树的进化退化逻辑。
- Hashtable不允许key value为null。
- 默认capacity容量及扩容逻辑不同,Hashtable默认11,扩容2n+1;HashMap默认16,扩容2n。(默认加载因子都是0.75)
- 计算数组位置算法不同,Hashtable 是hashCode与长度取模,HashMap是hashCode高低16位异或与长度-1取与。取模比位运算慢。
- Hashtable不遵守驼峰命名规范。
- HashMap很常用,Hashtable不常用,一般会用ConcurrentHashMap。