<分区>
我有一个追加字符串的情况。我很困惑..
public static void foo() {
String s = "str4";
String s1 = "str" + s.length();
System.out.println("(s==s1) = " + (s1 == s));
}
和
public static void bar() {
String s = "str4";
String s1 = "str" + "4";
System.out.println("(s==s1) = " + (s1 == s));
}
在第一种情况下返回“假”,但在第二种情况下返回“真” 据我了解,在这两种情况下,“str4”对象都是在堆上创建的。所以在这两种情况下它都应该返回 true 。但事实并非如此。 请有人帮我弄清楚为什么会这样。 ?谢谢!