一个Java实例在内存中究竟占据多大的内存?
- 实例的内存分为三个部分:对象头+实例数据+padding,其中HotSpot的对齐方式为8字节对齐,padding部分的计算公式为
(对象头 + 实例数据 + padding) % 8等于0且0 <= padding < 8 - 实例的内存大小受到JVM参数UseCompressedOops的影响
- 普通实例的对象头大小:如果开启压缩,则对象头占据12个字节,否则占据16个字节
- 引用数据类型:如果开启压缩,则占据4个字节,否则占据8个字节
- 数组实例:如果开启压缩,则其对象头占据16个字节,否则占据24个字节
最后,参考http://www.cnblogs.com/magialmoon/p/3757767.html上的实例来理解下