首页 > 其他分享 >Object o = new Object();

Object o = new Object();

时间:2022-12-05 10:46:54浏览次数:36  
标签:对象 Object Mark 内存 4byte new

对象的创建过程:

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

相关文章