String s1 = "java";
String s2 = "php";
String s3 = "javaphp";
String s4 = "java" + "php";
String s5 = s1 + "php";
String s6 = "java" + s2;
String s7 = s1 + s2;
System.out.println(s3 == s4);//true
System.out.println(s3 == s5);//false
System.out.println(s3 == s6);//false
System.out.println(s3 == s7);//false
System.out.println(s5 == s6);//false
System.out.println(s5 == s7);//false
System.out.println(s6 == s7);//false
String s8 = new String("java");
System.out.println(s1 == s8);//false
知识点:
- 常量池中的字面量:“java"
- 引用:s1, s2, s3 ... s7
- 对象:new String(“xx”):
内存分析:
结论:
- 字面量+字面量 = 字面量
- 引 用 + 字面量 = 对象 ≠ 字面量
- 字面量+引 用 = 对象 ≠ 字面量
- 引 用 + 字面量 = 对象1 ≠ 引 用 + 字面量 = 对象2 ≠ 字面量 + 引用 = 对象3