java面試基礎 集合相關問題

2021-08-17 01:13:47 字數 1460 閱讀 6361

1

hashmap、linkedhashmap、concurrenthashmap、arraylist、linkedlist的底層實現。

hashmap: 執行緒非安全 ,實現了map介面,雜湊表儲存鍵值對, entry物件hash陣列預設大小16,2的指數次擴充(位運算增速,查詢效率高),允許鍵值對為null, 無序jdk1.8 查詢演算法更新為紅黑樹,查詢效率加快

linkedhashmap:

實際上就是hashmap與雙向鍊錶合二為一,在hashmap基礎上,每乙個entry節點鏈入乙個雙向鍊錶。主要是犧牲效能,建立乙個有序的hashmap

concurrenthashmap:

增加了桶(segment)的概念,鎖表到桶級,精細化保證執行緒的安全性併發性強於hashmap,而查詢效率基本不受影響,增刪效率高於hashtable,併發用他就對了

hashmap和hashtable的區別。

hashmap:

執行緒非安全,效率高,鍵值對可以為null ,實現abstartmap,hash陣列預設16,2的指數次擴張,計算效率高

hashtable:

執行緒安全,效率低可併發,鍵值對不能為null,基於dictionary類,hash陣列預設11,old*2-1方式擴充(素數),雜湊表素數取模均勻

arraylist、linkedlist、vector的區別。

arraylist

:執行緒非同步,允許null元素,查詢快,增刪慢,陣列

linkedlist

:執行緒非同步,允許null元素,查詢慢,增刪快,雙向鍊錶

vevtor:

執行緒同步,效率低

hashmap和concurrenthashmap的區別。

底層實現的區別 concurrenthashmap整合hashmap的基礎上,增加了桶級的鎖,實現了精細化的執行緒安全基本上可以理解為單執行緒用hashmap,併發的情況下使用concurrenthashmap

hashmap和linkedhashmap的區別。

linkedhashmap

是在hashmap的基礎上每乙個entry節點鏈入了雙向鍊錶,犧牲一部分效能使得linkedhashmap做到有序

hashmap是執行緒安全的嗎。

執行緒不安全,底層實現上沒有加鎖,若要考慮 執行緒安全,可以參考hashtable(現已棄用),currenthashmap

concurrenthashmap是怎麼實現執行緒安全的。

將陣列分為16個segment,增刪改的時候鎖住某乙個segment來實現併發情況下的執行緒安全

JAVA集合相關基礎知識

1 collection 是集合的頂層結構,定義了集合的共性功能。1.1 成員方法 a 新增功能 boolean add object obj 往集合中新增乙個元素 boolean addall collection c 往集合中新增多個元素 b 刪除功能 void clear 清空所有元素 boo...

Java基礎 集合

1 集合的型別和各自的特性 collection 單列集合 list 有儲存順序 可重複 arraylist 陣列實現,查詢快,增刪慢,由於是陣列實現,在增和刪的時候會牽扯到陣列增容,以及拷貝元素 所以慢。陣列是可以直接按索引查詢,所以查詢時較快 linkedlist 鍊錶實現,增刪快,查詢慢由於鍊...

java基礎 集合

1 物件的儲存 陣列 基本資料型別 引用資料型別 集合 引用資料型別 陣列儲存資料的弊端 長度一旦初始化以後,就不可變 真正給陣列元素賦值的個數沒有現成的方法可用。2 集合框架 collection介面 list介面 儲存有序的,可以重複的元素,相當於 動態 陣列 新增進list集合中的元素 或物件...