hashtable的底層實現(xiàn) hashtable和hashmap的區(qū)別及實現(xiàn)原理?
hashtable和hashmap的區(qū)別及實現(xiàn)原理?Hashtable是線程安全的,HashMap是非線程安全的。Hashtable是基于老的Diactionary類實現(xiàn)的,HashMap是Java
hashtable和hashmap的區(qū)別及實現(xiàn)原理?
Hashtable是線程安全的,HashMap是非線程安全的。Hashtable是基于老的Diactionary類實現(xiàn)的,HashMap是Java 1.2引進Map接口后的重新實現(xiàn)。Hashtable的方法,進行了鎖同步,可以支行于多線程環(huán)境。HashMap需要編程人員自在己為其提供同步,才能運行多線程中。常用的方法是:利用Collections類的靜態(tài)的synchronizedMap()方法,它創(chuàng)建一個線程安全的Map對象或者是使用ConcurrentHashMap。
hashtable實現(xiàn)了哪個接口?
Hashtable和HashMap的區(qū)別:
1.Hashtable是Dictionary的子類,HashMap是Map接口的一個實現(xiàn)類;
2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情況下是非同步的.即是說,在多線程應用程序中,不用專門的操作就安全地可以使用Hashtable了;而對于HashMap,則需要額外的同步機制.但HashMap的同步問題可通過Collections的一個靜態(tài)方法得到解決:Map Collections.synchronizedMap(Map m)這個方法返回一個同步的Map,這個Map封裝了底層的HashMap的所有方法,使得底層的HashMap即使是在多線程的環(huán)境中也是安全的.
3.在HashMap中,null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的值為null.當get()方法返回null值時,即可以表示HashMap中沒有該鍵,也可以表示該鍵所對應的值為null.因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵,而應該用containsKey()方法來判斷.
想成為java高級程序員,需要掌握哪些技術(shù)?
分布式、設(shè)計模式、前端技術(shù)、網(wǎng)絡(luò)支付、全文搜索引擎、Docker、WebService等。
之前在“ 如鵬網(wǎng) ”上了解過Java的提高課程,有詳細的課程體系和學習路線,可以參考一下。
第一部分:
第二部分:NoSQL
第三部分:設(shè)計模式
第四部分:分布式技術(shù)
第五部分:綜合項目
詳細的可以到 如鵬網(wǎng)官網(wǎng)上去了解一下,有網(wǎng)絡(luò)的地方就可以學習,有問題隨時提問,老師實時在線答疑。有技術(shù)大牛親自授課,口碑不錯,基本上都是慕名而去的。有新的課程更新了,也是可以繼續(xù)申請了來學習的。