java对象的内存布局 以及 对象访问定位方法

本文深入探讨了HotSpot虚拟机中对象的内存布局,分为对象头、实例数据及填充部分,介绍了对象访问的句柄方式与直接引用方式,帮助理解Java对象在内存中的存储机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在HotSpot虚拟机中,对象在内存区域(java堆中)可分为三块区域----:

          1   Header(对象头),包括两部分,第一部分用来存储自身的运行时数据,如hashcode、GC年龄分代。。。;

                                                                 第二部分是类型指针,指向自己的元数据,即所属类,通过这个属性可以确定属于哪个类

          2   接下来是存储真正的信息部分,各种类型字段的内容

          3    第三部分是用来补齐的,要求对象大小必须是8字节的整数倍

 

对象访问的定位

           句柄方式: 两次指针定位实现到真正对象实例数据(实例)和类型数据的指针(Class)

 

                 

 

直接引用方式:省去一次指针定位

 

转载于:https://www.cnblogs.com/abstract-fabulous/p/7204519.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值