public class StringDemo {
public static void main(String[] args) {
String s1 = "Hello";
String s2 = "World";
String s3 = "HelloWorld";
System.out.println(s3.equals(s1+s2));
System.out.println(s3==s1+s2);
System.out.println(s3=="Hello"+"World");
}
public static void main(String[] args) {
String s1 = "Hello";
String s2 = "World";
String s3 = "HelloWorld";
System.out.println(s3.equals(s1+s2));
System.out.println(s3==s1+s2);
System.out.println(s3=="Hello"+"World");
}
}
输出
true
false
true
equals 比较值是否相等。
== 比较地址是否相等。
如果是字符串变量相加,先开辟空间(生成新地址),再相加存储。
如果是字符串常量相加,先相加,然后在常量池里找,如果有,则返回常量池里的地址;否则,就创建新的存储空间。