java中没有sizeof运算符。如何在java中找到对象的大小?

时间:2010-01-28 00:28:24

标签: java

  

可能重复:
  Programatically calculate memory occupied by a Java Object including objects it references
  In Java, what is the best way to determine the size of an object?

您好

java中没有sizeof运算符.. 但是我怎么知道java中对象的大小呢? 感谢

4 个答案:

答案 0 :(得分:1)

您可以将对象序列化为字节数组输出流。

这不会给你对象的确切大小,因为它会跳过瞬态数据,但至少可以让你很好地了解对象的大小。

答案 1 :(得分:1)

你做不到。内部表示是特定于JVM的。如果你想对你的JVM进行经验估计,你可以试试这个:1)打开详细的垃圾收集器输出(参见JVM标志)2)在你的程序中调用一个完整的GC 3)创建同一个对象的很多副本4)再次调用完整的GC 5)比较步骤2和4之后的堆大小并除以对象数

答案 2 :(得分:1)

没有可移植的直接方式,JVM之间的答案也不同(因为规范对实现细节没有提及)。

此处an excellent article显示了一种方法。

答案 3 :(得分:0)

我的第一个问题是你在做什么需要sizeof?你没有指法可以操纵,所以你真的没有必要知道。

SO重复?:In Java, what is the best way to determine the size of an object?