Java的對象頭和對象組成詳解


Java的對象頭和對象組成詳解

Java對象保存在內存中時,由以下三部分組成:

1,對象頭

2,實例數據

3,對齊填充字節

一,對象頭

對象頭由以下三部分組成:

1,Mark Word

2,指向類的指針

3,數組長度(只有數組對象才有)

1,Mark Word

![image-20210430095531572](

2,指向類的指針

該指針在32位JVM中的長度是32bit,在64位JVM中長度是64bit。

Java對象的類數據保存在方法區。

3,數組長度

只有數組對象保存了這部分數據。

該數據在32位和64位JVM中長度都是32bit。

二,實例數據

對象的實例數據就是在java代碼中能看到的屬性和他們的值。

三,對齊填充字節

因為JVM要求java的對象占的內存大小應該是8bit的倍數,所以后面有幾個字節用於把對象的大小補齊至8bit的倍數,沒有特別的功能。

導入maven 可以查看對象信息

   		<dependency>
            <groupId>org.openjdk.jol</groupId>
            <artifactId>jol-core</artifactId>
            <version>0.10</version>
        </dependency>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM