java對象大小

java對象包括對小偷,實例數(shù)據(jù)和對齊填充

任何一個對象都有對象頭,對象頭在32位系統(tǒng)上占用,64位系統(tǒng)上占用16bytes

對象頭的結(jié)構(gòu)

|?mark?word?|?klass?pointer?|?array?size?(opt)?|?padding

空對象的不包含任何成員變量,其大小即對象頭大小:

在 32 位 JVM 上,占用 8 字節(jié);

在未開啟UseCompressedOops的 64 位 JVM 上,16 字節(jié)。(感謝評論區(qū)的@SingleCool糾正)

在開啟UseCompressedOops的 64 位 JVM 上,12 + 4 = 16;

數(shù)組也是對象,故有對象的頭部,另外數(shù)組還有一個記錄數(shù)組長度的 int 類型,隨后是每一個數(shù)組的元素:基本數(shù)據(jù)類型或者引用。8 字節(jié)對齊

https://www.liaohuqiu.net/cn/posts/caculate-object-size-in-java/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容