Java類物件記憶體佈局
阿新 • • 發佈:2021-11-20
Java類物件記憶體佈局
物件頭
mark word
儲存物件執行時資料,如 HashCode 、GC年齡代、執行緒以及鎖相關的資訊。
32位虛擬機器中其大小為 4位元組,64位虛擬機器中其為 8位元組。
型別指標
指向其類結構元資料(方法區中類資訊),虛擬機器通過這個來確定這個物件是哪個類的例項。
預設大小為4 位元組,若64位虛擬機器中取消指標壓縮則為 8位元組(Jdk 1.6之後預設開啟指標壓縮)。
陣列長度
非必須存在,只有陣列型別的物件才會存在該資料空間。
預設大小為4位元組
空白填充
只會在陣列型別物件才會存在。
陣列型別的物件 :
若是64位虛擬機器且取消指標壓縮則會產生 4位元組 的空白填充。
例項資料
基礎型別
如 int 4位元組、long 8位元組計算。
引用型別
儲存對應引用物件地址的指標。
預設大小為4位元組,若64位虛擬機器中取消指標壓縮則為 8位元組。
補齊填充
保證整個物件大小維持在 8位元組的整數倍,不夠整數倍大小則填充物件至8位元組整數倍大小。