一个空对象有多少字节?

How many bytes a null object?

当我们有一个参考变量时,例如为了简化它 Integer i 我们可以假设 i 的大小大约是 16 字节开销 + 实际 int 的 4 字节 + 4 字节填充,即 24 字节。
所以我的问题是,如果 i 为空,我们是否只有 4 个字节的引用没有指向任何地方,或者是否有任何其他额外的 "hidden" 信息添加到此?

如果我没记错的话,JVM 规范提到 null 不需要具有特定的值或表示形式,因此它可以是任何东西。我不知道 通常 是什么,但合理猜测可能是 32 位或 64 位零,具体取决于 JVM 版本。

编辑:这是相关部分:http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.4

The Java Virtual Machine specification does not mandate a concrete value encoding null.

干杯,

是的,它仍然使用内存。我相信 32 位使用 4 个字节,64 位使用 8 个字节。

找到了更多关于此的信息:Java - Does null variable require space in memory