平常工作中,我们只new一个对象,却基本不关心这个对象到底占了我们多少空间....今天就一起看下,对象的空间占用情况
首先,内存中的对象是由以下几部分构成的:
结合上图以下类为例,看下内存空间的占用情况
public class MyObject {
int i = 123...对齐补全: JVM中开辟的内存空间必须是8字节的倍数, 如果缺少位数,需要补全为8的倍数; 以上各字段共28字节,需补全4字节
所以MyObject对象共占用8+4+0+16+4=32字节
下面利用openjdk...提升执行效率
头部空间补全
在关闭指针压缩之后,在看数组对象的内存空间,就可以发现产生了数据补全的情况
Mark down使用8字节
Klass pointer 使用8字节
数组长度 使用4字节
头部数据补全.../A
Instance size: 40 bytes
Space losses: 4 bytes internal + 0 bytes external = 4 bytes total
以上,就是一个对象内存的占用情况