一个对象多少个字节

[TOC]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class AAAAA {

}

class BBBBB {
int a = 1;
}

class CCCCC {
long a = 1l;
}

class DDDDD {
String s = "Hello";
}

指针压缩:

  • A对象只包含一个对象头,大小占12字节,不是8的倍数,需要4字节进行填充,一共占16字节

  • B对象包含一个对象头和int类型,12+4=16,正好是8的倍数,不需要填充。

  • C对象包含一个对象头和long类型,12+8=20,不是8的倍数,需要4个字节进行填充,占24字节

  • D对象包含一个对象头和引用类型,12+4=16,正好是8的倍数,不需要填充

    https://blog.csdn.net/qlmmys/article/details/53213857