创建的String对象数

cof*_*eak 0 java

以下代码将生成多少个String对象?

String s1="Hello"; //"Hello" is in String Pool Object #1
String s2 = s1.substring(2,3);//String object #2
String s3 = s1.toString();
String s4 = new StringBuffer(s1).toString(); //String Object #3
Run Code Online (Sandbox Code Playgroud)

这是我正在阅读的一本Java练习题的问题.没有答案,所以我不确定我的答案是否正确.是否创建了3个或5个字符串对象?toString()是否创建了一个新的String对象?我在网上查了一下,发现toString()"返回对象的字符串表示".我不太明白这意味着什么.

rua*_*akh 7

它会创造三个.你的分析是正确的.

toString()是否创建了一个新的String对象?我在网上查了一下,发现toString()"返回对象的字符串表示".

这是泛型的描述Object.toString,但String覆盖它以提供更具体的行为.它的版本以这种方式记录:

这个对象(已经是一个字符串!)本身就返回了.

[ 链接 ]