Java对象的null属性是否使用内存?

jmc*_*ale 4 java memory gson

我正在连接一个发送许多不同JSON对象的Web服务.我没有使用Java JSONObject,而是计划使用GSON库转换为POJO.我想拥有一个可以容纳所有可能性的通用java对象,而不是大量的类(每个可能的JSON服务响应一个).

public class GenericJSONResponse{
    public long objectKey;
    public GenericJSONResponse subObject1;
    public String description;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我认为这是一个很好的方法,因为服务器发送的属性差异很大.所有服务器响应仅包含可能的GenericJSONResponse属性的子集.未填充的属性是否会占用内存,即使它们为空?我的通用对象将有许多未使用的属性,我不希望它们占用宝贵的内存.

SLa*_*aks 6

类中的每个字段(引用类型)占用类的每个实例的指针大小(32位或64位)内存块.

此内存用于存储对字段值的引用,该引用可以是对现有对象或空引用的引用.

  • 对于原始字段不是这样,"byte"只需要1个字节 (2认同)