-1
當我們使用:創建時存儲在新對象中的值是什麼?
String s = new String("abc");
做出String
對象。
s
將被存儲在堆棧中,並且將引用新對象,並且將在堆中創建新對象,而文字將位於字符串常量池中。
現在的問題是,如果新對象的值會在字符串池常量中具有「abc」內存引用的值,或者它將帶有「abc」值?
當我們使用:創建時存儲在新對象中的值是什麼?
String s = new String("abc");
做出String
對象。
s
將被存儲在堆棧中,並且將引用新對象,並且將在堆中創建新對象,而文字將位於字符串常量池中。
現在的問題是,如果新對象的值會在字符串池常量中具有「abc」內存引用的值,或者它將帶有「abc」值?
我們可以看看String
constructor:
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
注意,原始字符串的value
是不可複製的,所以無論是新創建的字符串和將參考字符相同的基本陣列。
我不清楚你在問什麼。你問's'是否會引用常量池中的對象? –
你能詳細說明嗎? –
@Yohannes只是想問一下,新操作符創建的對象是指向字面abc,還是將abc作爲它的值。 – Javasist