jdk1 8記憶體分析 1

2021-08-26 14:52:16 字數 376 閱讀 3068

分為堆區和非堆區,以下對下圖進行分析和記錄

堆區分為young區,和old區,yong又分為2大塊,s區(from和to)和eden區,s區是同樣大小的兩部份,同一時間點下,只會有一塊有資料

主要是取代1.8之前的方法區,metaspace 分為ccs和codecache2份,

ccs(壓縮類空間),在堆中生成的每個物件都會有乙個指向class檔案的指標,預設情況下64位系統的指標位64位的,若啟用ccs可以使指標變為短指標的class並存入到ccs中,減小所佔記憶體大小

codecache  本地**和系統執行的一些native**

ArrayList原始碼分析 JDK1 8

借助工具類arrays,實現陣列複製 elementdata arrays.copyof elementdata,newcapacity 底層呼叫system.arraycopy system.arraycopy original,0,copy,0,math.min original.length,...

HashMap原始碼分析 JDK1 8

陣列 鍊錶 紅黑樹 陣列儲存元素,當有衝突時,就在該陣列位置形成乙個鍊錶,儲存衝突的元素,當鍊表元素個數大於閾值時,鍊錶就轉換為紅黑樹。transient node table transient int size int threshold final float loadfactor 預設初始容...

HashMap原始碼分析 (JDK1 8

首先,hashmap儲存結構類似於位桶,總體結構是 位桶 鍊錶 紅黑樹,這與之前版本的實現有所改進。常量域預設容量16 static final int default initial capacity 1 4 最大容量2的30次方 static final int maximum capacity...