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 ...