1. 程式人生 > 其它 >Java類物件記憶體佈局

Java類物件記憶體佈局

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位元組整數倍大小。