自己實戰整理面試題--集合(帶答案,不斷更新)
Set 和 List 區別?
ArrayList 和 LinkedList 區別?
如果存取相同的資料,ArrayList 和 LinkedList 誰佔用空間更大?
List 和 Map 區別,Arraylist 與 LinkedList 區別,ArrayList 與 Vector 區別?
Set 存的順序是有序的嗎?
常見 Set 的實現有哪些?
TreeSet 對存入對資料有什麼要求呢?
HashSet 的底層實現呢?
TreeSet 底層原始碼有看過嗎?
HashSet 是不是執行緒安全的?為什麼不是執行緒安全的?
Java 中有哪些執行緒安全的 Map?
Concurrenthashmap 是怎麼做到執行緒安全的?
HashTable 你瞭解過嗎?
會做連結串列兩個結點的交換嗎?(連結串列反轉嗎?)是的,你寫程式碼實現把。
再寫一個,給你一個連結串列和一個整數k(k大於等於0,小於等於連結串列長度,連結串列長度未知),按k步長反轉連結串列(比如1->2->3->4->5->6->7,當k=3的時候結果是3->2->1->6->5->4->7)
Map:
Map 的底層結構?那你說說HashMap的內部實現;(HashMap)
執行緒安全的 Map (concurrentHashMap)簡單的說了下這兩 1.7 和 1.8?
hashmap put 方法存放的時候怎麼判斷是否是重複的?
HashMap原始碼,為什麼執行緒不安全?
HashMap 和 hashTable 區別?
Object 的 hashcode 方法重寫了,equals 方法要不要改?
Hashmap 執行緒不安全的出現場景
HashMap高併發情況下會出現什麼問題,(擴容問題)
ConcurrentHashMap如何擴容?
ConcurrentHashMap內部是如何實現的?每個segment是個什麼資料結構?(HashTable)
HashMap內部的資料結構是什麼?底層是怎麼實現的?(還可能會延伸考察ConcurrentHashMap與HashMap、HashTable等,考察對技術細節的深入瞭解程度);
ConcurrentHashmap的鎖是如何加的?是不是分段越多越好
遍歷hashmap的三種方式?
hashmap如果只有一個寫其他全讀會出什麼問題?
concurrenhashmap求size是如何加鎖的,如果剛求完一段後這段發生了變化該如何處理
hashmap結構;什麼物件能做為key