例:
String stra="zhangsan";
String strb="zhangsan";
System.out.println(stra==strb);//true
String str1=new String("zhangsan");
String str2=new String("zhangsan");
System.out.println(str1==str2);//false
String str3=new String("zhangsan").intern();
String str4=new String("zhangsan").intern();
System.out.println(str3==str4);//true
上述代码结果的原因:
直接赋值:只产生一个实例化对象,并且可以自动保存到对象池中,以实现字符串实例的重用;
构造方法:会产生两个实例化对象,不会自动入池,无法实现对象的重用。用intern()方法可以实现自动入池。