直接看例子
String a = "abcdefg";
String b = "abcdefg";
System.out.println(a==b); //true
String a = "abcdefg";
String b = "abc" + "defg";(+调用append)
System.out.println(a==b); //true
String str1 = “hello”;
String str2 = “he” + new String(“llo”);
System.out.println(str1 == str2); //false
String a = "abcdefg";
String b = "abc" ;
String c = "defg";
String d = b + c;
System.out.println(a==b); //true
这里调用了StringBulider的两个方法append和toString方法。使用append进行拼接,拼接字符串后,虚拟机调用StringBuilder的toString()方法输出字符串的“123456”,然后该值存放至s4,那么这个拼接好的“123456”到底是以什么形式传递给s4的呢,我们来看toString方法。
public String toString() {
// Create a copy, don't share the array
return new String(value, 0, count);
}
它使用了new对象。