Java对象内存分配未访问的变量

时间:2015-04-04 14:16:18

标签: java memory allocation

我有一个包含三个整数A,B和C的java类。 我在客户端和服务器应用程序上都使用此类。 但我从不在服务器端访问A. 当我在服务器上创建该类的对象时,Java甚至会为A分配内存吗?

请注意,这不是转移对象。我只是在两个应用程序中使用该类来避免重复代码。

2 个答案:

答案 0 :(得分:3)

是的,将为整数成员分配内存 - 它与是否在代码中访问它们无关。所以对于以下内容:

class MyClass {

   int a;
   int b;
   int c;

   ...
}

默认情况下,成员初始化为零。即使字段类型是引用类型Integer,默认值仍为null,但引用仍需要分配内存(请参阅What exactly is null in Java memory)。

答案 1 :(得分:0)

在服务器端,如果你创建一个包含整数A的对象,那么无论A是初始化还是初始化都没有分配内存 -

int A; //only declaration of int variable, by default it set to 0
int B = 5; //initialization and declaration, now B is set to 5  

在这两种情况下,AB都是在类的任何方法之外但在类内部声明的实例变量。对于方法局部变量,您必须显式初始化它们。