看到一段代码:
public static void main(String[] args) {
String s1 = "a";
String s2 = "b";
String s3 = "ab";
System.out.println(s3 == s1 + s2); // false
System.out.println(s3 == "a" + "b"); // true,常量的运算会在编译期间就计算,所以"a"+"b"在编译后就是"ab"
}
对于第二个打印结果,还可以理解,两个字符串拼接成新字符串,内存中已存在,不新建,而是直接引用。
这第一个打印结果,原理是什么,s1+s2最后是组成了字符串"ab",返回false肯定是不相等,那就是代表在内存中新建了字符串。
主要是为什么新建了。
求解::::::::::
|
|