Here,作者的测试表明Integer
和Long
个对象占用相同的内存量,即16个字节。但是,当我在在线Java编译器here中运行确切的代码时,我会得到不同的结果。 Long
对象似乎占用了24个字节。
此外,作者说空String
对象占用40个字节的内存。但是,在线编译器说它占用了24个字节。
为什么会发生这种情况?是否有Java编译器的更新?
注意:作者确实注意到他们的结果基于Sun的JDK 1.3.1 for Windows,并警告他们可能会更改。
答案 0 :(得分:4)
作者明确指出:
注意:以下结果基于Sun的JDK 1.3.1 for Windows。由于Java语言和JVM规范的保证和保证,您无法将这些特定结果应用于其他平台或其他Java实现。