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

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

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

                                                                 第二部分是类型指针,指向本身的元数据,即所属类,经过这个属性能够肯定属于哪一个类指针

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

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

 

对象访问的定位

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

 

                 

 

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

相关文章
相关标签/搜索