【深入理解java虚拟机】 - HotSpot虚拟机中对象的创建、内存布局和访问
当Java虚拟机遇到一条字节码new指令时:整个过程如下图所示:对象创建以后被存放在堆区中,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。HotSpot虚拟机对象的对象头部分包括两类信息。此外,如果对 象是一个Java数组,那在对象头中还必须有一块用于记录数组长度的数据,因为虚拟机可以通过普通 Java对象的元数据信息确定Java对象的大小,但是如果数组的长度是不确定的,将无法通过元数据中的 信息推断出数组的大小。实