https://segmentfault.com/a/1190000007652363 值得一看segmentfault
虛擬機中,對象在內存中的佈局劃分爲3
個區域:對象頭,實例數據以及對齊填充。數組
對象頭佈局
通常包含兩部分信息,第一部分用於存儲對象自身的運行時數據,例如HashCode
、GC
分代年齡等信息。另外一部分用於存儲對象的類型指針,該指針指向它的類元數據,JVM
經過這個指針肯定對象是哪一個類的實例。以前提到對象頭通常包含兩部分信息,這是由於若是對象是一個數組,那麼對象頭還須要有額外的空間用於存儲數組的長度。spa
實例數據部分是對象真正存儲有效信息的區域,存儲了代碼中定義的各類字段的內容,包括從父類繼承下來的字段和子類中定義的字段。指針
對齊填充這部分不是必須存在的,這部分僅僅是起着佔位符的做用。code