2015-05-13 50 views
0

当我创建这样的代码:String对象创建的连接结果

String s ="hello"; 
String s1= new String("bye"); 
String s3=s1.concat(s); 
String s4 = s.concat(s1); 

这里s是文字,s1是堆。当我连接并创建一个新对象时,它将在哪里创建(在堆或实习中?)

这里有一个在池中,一个在堆中。

回答

0

String concat()将返回一个新的String对象不是文字。因此,它将是物体的存储位置,正如你所说的那样应该是heap

创建新对象是在文档中指定

....一个新的String对象被创建,表示.......

1

如果你看到source一个字符序列concat()方法,你会看到它返回一个新字符串

return new String(0, count + otherLen, buf); 

所以字符串堆

创建