我要计算java.lang.String对象的大小。
String a = "a";
我使用Java 8和64位系统。
我知道尺寸应该是:
16个字节用于新的string
标头,
int hash
的4个字节
8个字节,用于引用char value[]
现在我们还有char数组对象
新的char[]
标头为16个字节
数组长度为4个字节,
char a
的2个字节
因此它应该是16 + 4 + 8 + 16 + 4 + 2 = 50并且由于未决= 56
但是此代码显示了48
final String str = "a";
System.out.println(ObjectSizeCalculator.getObjectSize(str));
我想念什么?