为连接结果创建字符串对象

时间:2015-05-13 16:34:43

标签: java string concatenation string-literals

当我创建这样的代码时:

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

此处s在文字中,s1在堆中。当我连接并创建一个新对象时,它将在何处创建(在堆或实习生中?)

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

2 个答案:

答案 0 :(得分:1)

如果您看到return new String(0, count + otherLen, buf); 方法的source,您会看到它返回一个新字符串

{{1}}

因此在堆中创建字符串

答案 1 :(得分:0)

C.__dict__将返回一个新的String concat()对象,而不是文字  因此,它将存储对象的位置,正如您所说的应该是String

在doc

中指定了新的对象创建

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

的字符序列