Object o = new Object();
2022-12-05 10:37 杭伟 阅读(89) 评论(0) 收藏 举报对象的创建过程:
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问题
对象怎么定位
**对象如何分配?
                
                作者:hangwei
                
                出处:http://www.cnblogs.com/hangwei/
                
                     关于作者:专注于开源平台,分布式系统的架构设计与开发、数据库性能调优等工作。如有问题或建议,请多多赐教!
                
                     版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
		
                     如果您觉得文章对您有帮助,可以点击文章右下角“推荐”一下。您的鼓励是作者坚持原创和持续写作的最大动力!
                
          
            
                
            
        
浙公网安备 33010602011771号