文章目录
前言
你将学习到:HashMap和HashTable的区别
1.继承的父类不同
2.同步性不同(线程安全不同)
3.对null key和null value的支持不同
4.初始化数组的时机不同
5.扩容方式不同
6.计算hash值的方法不同
7.计算下标的方法不同
1.继承的父类不同
进入HashMap和HashTable的原码,首先可以看到的是,两者继承的父类不同。HashMap继承了AbstractMap,HashTable继承了Dictionary。不过他们两都实现了Map、Cloneable、Serializable接口。
2.同步性不同(线程安全不同)
继续纵观两者的源码发现,HashTable的绝大部分方法前都加了synchronized(同步函数),而HashMap则没有。由此得出,HashTable是线程安全的,HashMap不是线程安全的,同时也能得出HashTable的效率不如HashMap。(加了synchronized,所有的线程进来之后都要排