學習原始碼總結

2021-09-25 03:55:08 字數 515 閱讀 3990

hashmap原始碼

建立不指定大小的話,集合不進行初始化,第一次新增的時候進行初始化。

初始化長度為16,閾值為0.75

自動增加長度時機為16 * 0.75=12,當長度達到12時,增加長度,預設增加為2 * length,也就是2*16=32

hashmap的資料結構為陣列+鍊錶的結構

儲存方式為key的hash值對(length-1)取余為陣列角標,鍊錶儲存判斷雜湊值,雜湊值相同判斷是否key相同,相同覆蓋,不相同,增加最新的資料,同時在entry內記錄原來的資料。

hashmap的最大長度為2的30次方。

arraylist原始碼

預設大小為10,觸發擴容時機為達到當前容量

增添和刪除基本時通過system.arraycopy方法,

擴容時使用的是arrays.copyof方法,建立新的object[ ] ,然後將原來集合的資料賦值過去

每次擴容為當前容量的二進位制右移一位,增加0.5倍,10->15->22

最大容量為2^31-1

SpringAOP原始碼學習總結

1.使用 enableaspectjautoproxy啟用aop 2.建立abstractautoproxycreator 使用 enableaspectjautoproxy後,可以看到會 import aspectjautoproxyregistrar.class aspectjautoproxy...

EasyUI學習總結 四 parser原始碼分析

parser模組是easyloader第乙個載入的模組,它的主要作用,就是掃瞄頁面上easyui開頭的class標籤,然後初始化成easyui控制項。1 2 parser模組主要是解析頁面中easyui的控制項 3 4 parser else if window.easyloader 35 36 3...

ArrayList原始碼總結

1.1無引數建構函式 public arraylist private static final object empty elementdata public boolean add e e private void ensurecapacityinternal int mincapacity e...