JAVA对象内存布局 以及对象定位

                                                      JAVA对象内存布局 以及对象定位

1、Java对象内存布局

   在hotSpot虚拟机中,对象在内存中的布局可以分成对象头、实例数据、对齐填充三部分。

   对象头:对象头包含两部分,第一部分主要包括对象自身的运行行元数据,比如哈希码、GC分代年龄、锁状态标志等;第二部分包含一个类型指针,指向类元数据,表明该对象所属的类型

   实例数据:它是对象真正存储的有效信息,包括程序代码中定义的各种类型的字段(包括从父类继承下来的和本身拥有的字段)

   对齐填充:它不是必要存在的,仅仅起着占位符的作用

2、对象的访问方式

   目前比较主流的访问方式有使用句柄和直接指针两种。

   句柄方式:它将java堆划分出一块内存来作为句柄池,结构如图所示:


   这种方式的优点就是reference中存储的是稳定的够本地址,在对象移动时只需要改变句柄池中实例数据指针,而reference本身不需要修改


   直接指针方式:


  它的优点就是访问速度快


                转自:http://blog.csdn.net/lclansefengbao/article/details/37725131

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值