无论如何要确定java中的对象有多大?

时间:2011-04-21 16:30:01

标签: java object sizeof

  

可能重复:
  sizeof java object
  In Java, what is the best way to determine the size of an object?

您好,

为什么java中没有sizeof?怎么能知道一个物体有多大?

谢谢

3 个答案:

答案 0 :(得分:1)

是的。 Here 是如何做到这一点的一个例子。另一种方法是声明at对象并在实例化对象之前和之后获取Runtime.freeMemory(),而不是查看差异。

答案 1 :(得分:0)

如果您想知道您的程序使用了多少内存,请使用分析器。

基本上,对象的大小是Java中不需要非常了解的事情之一。这使你不会为什么它在C / C ++中如此重要。 ;)

更长的答案是你可以使用Instrumentation.getSizeOf(Object),但它不易使用。

答案 2 :(得分:0)

这是一个复杂的讨论,因为“大小”是什么意思?例如,您是指Java用来表示int,char等多少字节?或者你的意思是它用来存储对象引用的字节数是多少?或者JVM使用的内部结构用于创建和存储该对象中的所有数据的字节数是多少?我冒昧地猜测最后两个问题的答案是依赖于操作系统的,我认为你不能将其标准化。 (例如,在64位计算机上,操作系统更容易一次处理64位整数而不是32位 - 所以很可能内部Java int将表示为8个字节,即使java int只存储32位值。)

有很多方法可以找到其中的一些 - 比如看看:http://devblog.streamy.com/2009/07/24/determine-size-of-java-object-class/ - 但它们在操作系统中并不一致。