2013-12-18 32 views
-9

问题:对象是使用构造函数在Java中创建的,因为我们知道没有返回类型的构造函数。现在对象引用如何指向该对象地址?对象在java中如何创建?

例子:

Class Demo{ 

    private String objName; 

    Demo(String objName){ 
     this.objName = objName; 
    } 

    public static void main(String[] args){ 
     Demo obj1 = new Demo("first"); 
    } 

} 

在我们的对象obj1的例子,如何对象引用获取对象地址inernally?

+2

Head First Java –

+0

引用'obj1'和'obj2'保存在* stack *中,而它们的引用对象在* heap *中。你还需要知道什么?快速的Google搜索会立即回答您的问题。 – GGrec

+2

所有这些魔法都是因为'new'关键字,而不是'constructor'。构造函数没有返回类型,但'新'具有 –

回答

2

他们为什么不应该?您呼叫将内存保存到堆中的新操作员。所以很自然,你会得到obj1和obj2的两个不同的引用。据我所知,做

this.objName = objName; 

您复制OBJNAME的内容this.objName因为字符串在Java中被复制,而不仅仅是链接。

0

当遇到new运算符时,会在堆中创建相应类的新实例。并且相同(参考)的地址存储在堆栈中。