我有附加字符串的情况。我很困惑..
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));
}
在第一种情况下,它返回“false”,但在第二种情况下返回“true”据我所知,在这两种情况下,“str4”对象都是在堆上创建的。所以它在这两种情况下都应该返回 true。但事实并非如此。请有人帮我弄清楚为什么会这样。? 谢谢。!