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

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

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

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

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

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

 

对象访问的定位

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

 

                 

 

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

 

posted on 2017-07-19 10:48  笑傲江湖未平生  阅读(167)  评论(0编辑  收藏  举报