对象的创建过程:
1,申请内存,并初始化;
2,构造器初始化;
3,o指向对象。
对象在内存中的存储布局:
使用jol工具打印java对象在内存的存储布局:
其中,对象头的组成:
对象头包括Mark Word和Class Pointer
MarkWord包含三个主要信息: 锁信息,GC,HashCode
Mark Word = 8byte
Class Pointer = 4byte (经过压缩)
对齐填充 = 4byte
所以,Object o = new Object(); 在内存中占用16字节。
其它引申问题:
DCL与volatile问题
对象怎么定位
**对象如何分配?
标签:对象,Object,Mark,内存,4byte,new From: https://www.cnblogs.com/hangwei/p/16951614.html