无论如何,要确定Java中的对象有多大? [重复]

|                                                                                                                   这个问题已经在这里有了答案:                                                      
已邀请:
就在这里。这是如何完成此操作的示例。另一种方法是在实例化对象之前和之后在对象处声明并获取Runtime.freeMemory(),而不是查看差异。     
如果您想知道程序正在使用多少内存,请使用探查器。 基本上,对象的大小是Java中您不需要非常了解的那些事情之一。使您不会知道为什么它在C / C ++中如此重要。 ;) 更长的答案是您可以使用Instrumentation.getSizeOf(Object),但使用起来并不简单。     
这是一个复杂的讨论,因为“尺寸”是什么意思?例如,您是说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/-但他们赢了在各个操作系统之间不一致。     

要回复问题请先登录注册