String var1 = "hello";
String var2 = "hello";
String var3 = new String("hello");
String var4 = new String("hello");
String var5 = "he" + "llo";
String var6 = new String("hello").intern();
System.out.println(var1 == var2); //var1和var2字面量编译期就可以确定,常量池中字面量相同的字符串常量只有一份,true
System.out.println(var1 == var3); //var3是通过new创建的新对象,false
System.out.println(var3 == var4); //通过new创建的对象,和其它对象都是独立的,false
System.out.println(var1 == var5); //var5的字面量编译期就可以确定,和var1是同一个常量,true
System.out.println(var1 == var6); //intern方法返回一个常量池中字面量相同的常量,true