02 对象的创建

2020-08-13  本文已影响0人  格林哈

1. 虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建

2 对象的内存布局

2.1 内存布局

2.2 压缩指针

System.out.println(org.openjdk.jol.info.ClassLayout.parseClass(Integer.class).toPrintable());
// 关闭指针压缩
java.lang.Integer object internals:
 OFFSET  SIZE   TYPE DESCRIPTION                               VALUE
      0    16        (object header)                           N/A
     16     4    int Integer.value                             N/A
     20     4        (loss due to the next object alignment)
Instance size: 24 bytes

// 启用指针压缩
java.lang.Integer object internals:
 OFFSET  SIZE   TYPE DESCRIPTION                               VALUE
      0    12        (object header)                           N/A
     12     4    int Integer.value                             N/A
Instance size: 16 bytes

2.3 字段重排列

3 对象的访问定位

上一篇 下一篇

猜你喜欢

热点阅读