构造函数依赖于'new'关键字来初始化实例变量

时间:2018-03-17 05:21:47

标签: java oop memory-management

class Abs
{
int x;
public static void main(String []args)
{
 // i'm not using 'new' keyword here 
}

}

编译后,实例变量'x'是否会以其默认值初始化?如果'new'关键字用于在堆中分配内存那么'x'门存储器...如果不是这意味着构造函数依赖于'new'关键字来初始化实例变量?

1 个答案:

答案 0 :(得分:2)

我认为你错误地理解了新关键字和构造函数的概念。

检查它是否对您有用新关键字用于创建新的内存块,我们可以使用构造函数存储所有变量和方法。因为所有变量都将存储在堆栈中,方法将存储在堆中。

例如:NewClass obj = new NewClass(); 在此代码中,新关键字将为关键字后面提到的类类型创建一个新的内存块,构造函数将所有变量和方法添加到该内存中。该内存有一些地址可以引用地址obj用作该地址的名称,以便我们可以使用对象名称调用该类的所有资产。并希望您知道我们可以为单个类创建“n”个对象,并且每个对象都有一个单独的内存块。

来到您的问题,在此代码中,在您创建此new Abs();之类的实例之前,不会定义x。对你的职业生涯来说都是最好的。