我只是想知道如果我创建一个像New Object()这样的新对象,将在内存中保留多少空间.由于在堆上创建的任何对象占用的空间等于其实例变量的大小总和.
Jon*_*eet 16
由于在堆上创建的任何对象占用的空间等于其实例变量的大小总和.
不,它需要更多的内存.指向类型信息的指针以及与对象关联的监视器(用于同步目的)需要额外的内存.
确切的大小因JVM而异(特别是处理器架构).对于对齐目的,JVM也可以实现最小大小,但是获得"前4字节字段可用"策略.例如,假设在64位JVM上,类型指针占用8个字节,监视器信息占用4个字节,您可能仍需要分配16个字节而不是12个用于对齐目的 - 在这种情况下,具有单个int字段的对象可能需要与普通Object实例相同的内存.