2017-06-16 49 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是不可复制的,所以无论是新创建的字符串和​​将参考字符相同的基本阵列。

相关问题