1、Hashtable是基于哈希表的Map接口的同步實(shí)現(xiàn),不允許使用null值和null鍵
底層使用數(shù)組實(shí)現(xiàn),數(shù)組中每一項(xiàng)是個(gè)單鏈表,即數(shù)組和鏈表的結(jié)合體
2、Hashtable在底層將key-value當(dāng)成一個(gè)整體進(jìn)行處理,這個(gè)整體就是一個(gè)Entry對(duì)象。
3、Hashtable底層采用一個(gè)Entry[]數(shù)組來保存所有的key-value對(duì),當(dāng)需要存儲(chǔ)一個(gè)Entry對(duì)象時(shí),會(huì)根據(jù)key的hash算法來決定其在數(shù)組中的存儲(chǔ)位置,在根據(jù)equals方法決定其在該數(shù)組位置上的鏈表中的存儲(chǔ)位置;當(dāng)需要取出一個(gè)Entry時(shí),也會(huì)根據(jù)key的hash算法找到其在數(shù)組中的存儲(chǔ)位置,再根據(jù)equals方法從該位置上的鏈表中取出該Entry。
4、synchronized是針對(duì)整張Hash表的,即每次鎖住整張表讓線程獨(dú)占
參考文獻(xiàn):http://blog.csdn.net/zheng0518/article/details/42199477