2013-12-18 134 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運算符時,會在堆中創建相應類的新實例。並且相同(參考)的地址存儲在堆棧中。