java基礎-d1

之前面試的時候有問過map中的key和value值是否能爲空的問題,我當時想,value爲空還有可能,那key還能爲空嗎?key爲空那還有什麼意義呢,但事實不是這樣。至於部分map的key爲什麼能爲空,可以再深入思考。

主要的Map
Map Key Value Super JDK DESC
HashTable 不允許爲null 不允許爲null Dictionary 1.0 線程安全(過時)
ConCurrentHshMap 不允許爲null 不允許爲null AbstractMap 1.5 鎖分段技術或CAS(JDK8以上)
TreeMap 不允許爲null 允許爲null AbstractMap 1.2 線程不安全(有序)
HashMap 允許爲null 允許爲null AbstractMap 1.2 線程不安全(resize死鏈問題)

注:雖然部分map的key值是可以置入null,但實際開發中,很大機率會在調用過程中報異常,在線程中,子線程異常不會拋給主線程,因此在排查問題時會很繁瑣,值得注意。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章