我试图了解使用new运算符创建 Java 对象时将分配的大小。
考虑到我正在创建一个类
public class NewClass {
NewClass() { }
}
当我创建NewClass
using的实例时NewClass nc = new NewClass();
。NewClass
在堆中创建的大小是多少?
~ 杰根
我试图了解使用new运算符创建 Java 对象时将分配的大小。
考虑到我正在创建一个类
public class NewClass {
NewClass() { }
}
当我创建NewClass
using的实例时NewClass nc = new NewClass();
。NewClass
在堆中创建的大小是多少?
~ 杰根
分析是最好的方法,但你可以得到一个很好的估计,如下所示:
每个对象 8 个字节(无开销),外加字段。
最终结果增加到最接近的 8 个字节的倍数。
有关如何计算更复杂对象的内存使用情况,另请参见我的示例。注意:这些规则可能因虚拟机而异,并且可能会随着新版本的虚拟机的出现而改变。我的估计仅适用于 Sun JVM,尽管我怀疑 IBM 的结果会相似。