2017-06-16 32 views
-1

當我們使用:創建時存儲在新對象中的值是什麼?

String s = new String("abc"); 

做出String對象。

s將被存儲在堆棧中,並且將引用新對象,並且將在堆中創建新對象,而文字將位於字符串常量池中。

現在的問題是,如果新對象的值會在字符串池常量中具有「abc」內存引用的值,或者它將帶有「abc」值?

+0

我不清楚你在問什麼。你問's'是否會引用常量池中的對象? –

+0

你能詳細說明嗎? –

+0

@Yohannes只是想問一下,新操作符創建的對象是指向字面abc,還是將abc作爲它的值。 – Javasist

回答

1

我們可以看看String constructor

public String(String original) { 
    this.value = original.value; 
    this.hash = original.hash; 
} 

注意,原始字符串的value是不可複製的,所以無論是新創建的字符串和​​將參考字符相同的基本陣列。

相關問題