了解JVM中的对象开销

我正在研究java,我记得在某个地方读过java对象,在JVM中有一些开销,这是由虚拟机用于管理的原因。 所以我的问题是,有人可以告诉我是否以及如何在HotSpot JVM中获取对象的总大小,以及它可能带来的任何开销?

你无法直接获得开销。 开销量取决于实现,并且可能因许多因素而异(例如,精确的JVM版本,以及您是使用32位还是64位JVM)。

但是,假设在像HotSpot这样的典型现代JVM实现中,每个对象的开销在8到16个字节之间是相当安全的。 数组的开销通常比其他对象大4个字节(包含整数数组长度)。

也可以看看:

  • 在Java中,确定对象大小的最佳方法是什么?
  • Java对象的内存使用情况:一般指南

我发现这篇文章相当有用,尽管我对表中提到的一些值有些怀疑