DESKTOP-RLRCCPP_20200911-牛子良

问题

Hashtable与HashMap的区别;

一、HashMap

(1)java 8之前采用数组链表来存放Entry,在java 8之后开始采用数组、链表、红黑树来存放Entery;

(2)键key值不可重复,键值可以是null;

(3)值value可以重复,可以是null;

(4)扩容:newcapacity=oldCapacity<<1,即当哈希表中的条目数超出了加载因子与当前容量乘积时,则要对该哈希表进行rehash操作,从而哈希表将具有大约两倍的桶数;

(5)不是线程安全的

(6)根据key的哈希值确定Entry的存放位置;

二、Hashtable

(1)键key不可重复;

(2)值value可以重复;

(3)任何非null对象都可以用作键或值;

(4)扩容:当Entry个数超过阈值时就扩容,扩容方式newCapacity=(oldCapacity<<1)+1

(5)是线程安全的

吐槽

安装了个Oracle,电脑卡的不成样了;