public class Exec8 {
public static void main(String[] args) {
String s1 = "a";
String s2 = "b";
String s3 = "ab";
String s4 = "ab";
System.out.println(s3 == s4); //结果为true,享元机制
String s5 = "a" + "b";
System.out.println(s3 == s5); //结果为true,常量优化机制
String s6 = s1 + s2;
System.out.println(s3 == s6); //结果为false,两个变量相加
String s7 = new String("ab");
System.out.println(s3 == s7); //结果为false,s7引用的实体在堆内存中
final String s8 = "a";
final String s9 = "b";
String s10 = s8 + s9;
System.out.println(s3 == s10); //结果为true,原理同s3 == s5,被final修饰的变量也是常量,同样享受常量优化机制
}
} |
|