ArrayList HashMap等初始空間大小

2021-08-11 05:17:47 字數 636 閱讀 5454

arraylist的初始容量為10,原始碼如下

/*** default initial capacity.

*/private static final int default_capacity = 10;

底層資料結構是陣列結構

擴容增量:原容量的 0.5倍+1

如 array list的容量為10,一次擴容後是容量為16

vector的初始容量也是10

底層資料結構是陣列結構

載入因子為1:即當 元素個數 超過 容量長度 時,進行擴容

擴容增量:原容量的 1倍

如 vector的容量為10,一次擴容後是容量為20

hash map中預設的儲存大小就是乙個容量為16的陣列hash map中的資料量》容量*載入因子,而hash map中預設的載入因子是0.75),hash map的空間將會擴大,而且擴大後新的空間一定是原來的2倍

hashset:執行緒不安全,訪問速度快

底層實現是乙個hashmap(儲存資料),實現set介面

預設初始容量為16

載入因子為0.75:即當 元素個數 超過 容量長度的0.75倍 時,進行擴容

擴容增量:原容量的 1 倍

如 hash set的容量為16,一次擴容後是容量為32

核心空間vmalloc的空間初始化

我們最近在除錯32位產品的時候遇到了這樣的問題 使用ddr虛擬disk做硬碟,來啟動系統 因為32位產品可以訪問的最大位址空間僅為4g,因此核心空間的位址也顯的比較緊張 我們虛擬的disk的實現是,使用一大塊連續的物理記憶體做disk,並將這塊物理記憶體通過vm map ram將物理線性位址對映到v...

HashMap等集合初始化時應制定初始化大小

一 原因 這個不用多想,肯定是效率問題,那為什麼會造成效率問題呢?當我們new乙個hashmap沒有對其容量進行初始化的時候,系統會預設建立乙個16大小的集合。當我們使用的集合太小時,就會造成記憶體的浪費,而當hashmap的容量超過臨界值時,hashmap就會擴容到下乙個2的指數冪 2 4,4 8...

Oracle建立表空間等語句說明

oracle中,表空間是資料管理的基本方法,所有使用者的物件要存放在表空間中,也就是使用者有空間的使用權,才能建立使用者物件 否則是不充許建立物件,因為就是想建立物件,如表,索引等,也沒有地方存放,oracle會提示 沒有儲存配額 因此,在建立物件之前,首先要分配儲存空間 分配儲存,就要建立表空間 ...