String中两种对象实例化方法的区别

例:

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()方法可以实现自动入池。

posted @ 2020-04-11 13:58  下饭  阅读(233)  评论(0编辑  收藏  举报