2017-02-24 85 views
-4

我有POJO类,其中包含300个变量。我想要列举这些POJO类。在这300个字段中,150将始终为NULL,因为没有用处。 请让我知道JVM会将内存分配给空字段吗?堆内存会有问题吗?如何将内存分配给java中的对象

+1

这个问题听起来有点废话 –

+1

每个对象所需的总空间是根据第一个答案(32位总共* 4个字节或64位系统总共* 8个字节)。但从可维护性的角度来看,300是很多变数。我会建议将它们分组为单独的对象,例如。所有的地址字段将进入一个Address对象,该对象的id通过地址成员引用:private Address address;如果没有定义地址,这本身可以是空的。 – slipperyseal

回答

1

在Java中,即使某个字段为空,它仍占用32位系统上的4个字节或64位系统上的8个字节以保留空引用。因此,在这种情况下,对象将使用150 * 4(150 * 8用于64位)额外字节,以保留未使用的字段。但是,在没有同时分配太多实例之前,这并不重要。