https://upload-images.jianshu.io/upload_images/2062729-9a78f7ea7671a031.png
1.实例数据:存放类的属性数据信息,包括父类的属性信息;
2.对齐填充:由于虚拟机要求 对象起始地址必须是8字节的整数倍。填充数据不是必须存在的,仅仅是为了字节对齐;
3.对象头:Java对象头一般占有2个机器码(在32位虚拟机中,1个机器码等于4字节,也就是32bit,在64位虚拟机中,1个机器码是8个字节,也就是64bit),但是 如果对象是数组类型,则需要3个机器码,因为JVM虚拟机可以通过Java对象的元数据信息确定Java对象的大小,但是无法从数组的元数据来确认数组的大小,所以用一块来记录数组长度。
https://upload-images.jianshu.io/upload_images/2184951-058c47ce1215e691.png?imageMogr2/auto-orient/strip|imageView2/2/w/834/format/webp