java核心系列(十二)-java对象大小

对象大小

1,64位系统

new java.lang.Object() 占用了 16 bytes
new byte[0] 占用了 24 bytes

1
2
3
4
5
6
class A {
byte x;
}
class B extends A {
byte y;
}

new A() 占用了 24 bytes
new B() 占用了 32 bytes= 24+pad A(8)

1
2
3
class C {
Object obj = new Object();
}

new C() takes 40 bytes= obj+obj ref +C = 16+8+16

2,参考资料