hotspot虚拟机中的对象是如何布局的

来源:互联网 发布:电力工程计价软件 编辑:程序博客网 时间:2024/05/21 06:30

对象是如何布局的

 

对象在内存中存储的布局可以分3块区域:

对象头,实例数据,对齐填充

 

对象头:在内存分配中已经说过,一部分,保存对象本身的固有信息,一般占32bit或者64bit(和虚拟机的位数相匹配)

 另一部分是其类型指针,指定了该对象是哪个类的实例

 

实例数据:

    对象真正有效存储的信息,存储顺序会受到虚拟机的分批额策略参数和再java中定义的顺序有关,无论是从父类继承下来的还是子类本身有的,都需要记录

  分配策略:long/double ints, sharts/chars booleanoops(对象引用),在这个分配顺序的前提下,父类中定义的变量会在子类定义的变量之前,如果CompactFileds参数值为true,那么子类之中教窄的变量也可能插入到父类变量的空隙之中

 

填充补齐:不是必然存在的,只是起着占位符的作用,因为HotSpot Vm 中规定对象的大小必须是8个字节的整数倍。因此,当对象的实例数据部分没有对齐的时候,就需要填充补齐

0 0
原创粉丝点击