-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