---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------
String s1="abc";
String s2="abc";
String s3=new String("abc");
System.out.println("abc"==s1);//true,引用s1指向常量池中的String常量"abc"
System.out.println(s1==s2);//true,引用s1、s2都指向常量池中的"abc"
System.out.println(s1==s3);//false,引用s3指向堆中新建的new String("abc");
String s4="a";
String s5="a"+"b";
String s6=s4+"b";
final String s7="a";
String s8=s7+"b";
String s9="ab";
System.out.println(s5==s9);//true,根据编译器合并已知量的优化功能,相当于s5="ab";
System.out.println(s6==s9);//false,编译器真正运行的是String s6 = (new StringBuilder()).append(s4).append("b").toString();
System.out.println(s8==s9);//true,由于s7是常量,同s5
---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------