一. 对象的内存布局
HotSpot 虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。
二. 对象头
JVM 对象头一般占用两个机器码,在 32-bit JVM 上占用 64bit, 在 64-bit JVM 上占用 128bit 即 8+8=16 bytes(开启指针压缩后占用 4+8=12 bytes)
64位机器上,数组对象的对象头占用 24 bytes,启用压缩之后占用 16 bytes。之所以比普通对象占用内存多是因为需要额外的空间存储数组的长度。
更具体的对象头介绍请参考:http://blog.youkuaiyun.com/wenniuwuren/article/details/50939410
原文 https://blog.youkuaiyun.com/wenniuwuren/article/details/50958892