HashMap面試題(持續更新)

2021-10-22 14:57:50 字數 1614 閱讀 8806

1、hashmap的資料結構?

底層使用的是雜湊表(陣列加鍊表),結合陣列和鍊錶的優點,為提高鍊錶的查詢效率,jdk8之後,當鍊表的長度超過8,鍊錶就轉換成紅黑樹

2、能說說hashmap的put()和get()方法的具體實現嘛?

儲存物件時,將k/v值傳給put()方法

獲取物件時,將k傳給get()方法

hashcode是定位的,儲存位置;equals是定性的,比較兩者是否相等。

3、為什麼要使用異或運算子?

保證了物件的hashcode的32位值只要有一位發生改變,整個hash函式返回值就會改變。盡可能的減少碰撞。

4、hashmap的table容量如何確定?loadfactor是什麼?該容量如何變化,這種變化會帶來什麼問題

5、說說你對紅黑樹的見解?

6、jdk8中對hashmap做了哪些改變?

7、hashmap&treemap&linkedhashmap使用場景?

hashmap: 在map中插入、刪除和定位元素時;

treemap: 在需要按自然順序或自定義順序遍歷鍵的情況下;

linkedhashmap: 在需要輸出的順序和輸入的順序相同的情況下。

8、hashmap和hashtable有什麼區別?

9、jdk1.8中做了哪些優化?

10、hashmap執行緒安全方面會出現什麼問題

11、為什麼hashmap的底層陣列長度總是2的n次方

第一:當length為2的n次方的時候,h & (length-1) = h % length第二:當length為2的n次方的時候,資料分布均勻,減少衝突

12、為什麼jdk1.8使用紅黑樹?

簡單來說就是為了提高查詢效率,將查詢的時間複雜度從原來的o(n)到o(logn)

hashmap 和 concurrenthashmap 的區別

參考文章

TCP IP面試題(持續更新)

no.1 tcp ip基礎 這些知識點都可以參考 no.2 常見面試題 tcp與udp的區別 tcp協議是有連線的,有連線的意思是開始傳輸實際資料之前tcp的客戶端和伺服器端必須通過三次握手建立連線,會話結束之後通過四次揮手結束連線。而udp是無連線的 tcp協議保證資料按序傳送,按序到達,提供超時...

幾個面試題 持續更新

1.簡單列舉了解的程式語言及語言間區別。python簡單,python開發效率快,python 簡潔,跨平台,學習成本比較低 2.列舉python2和3的區別 後期要找一些模組和專案的區別 py3 print 編碼方式 unicode 類 新式類 range 可迭代物件 input 獲取的內容全都是...

kafka面試題 持續更新

kafka 中的資料只能儲存七天,隨之而來的問題就是某個偏移量對應的資料被清除,我們通過偏移量去查詢資料而發生的報錯 資料已經被 kafka 給清除掉了 也就是說我們讀取的偏移量小於 kafka 中資料儲存的最早的偏移量,說明資料已經被 kafka 給乾掉了 解決方式 將拿到的偏移量和 kafka ...