String str="abc";和String str=new String("abc");的区别

String str="abc";和String str=new String("abc");的区别

String str="abc";

String str=new String("abc");

正在回答

登陆购买课程后可参与讨论,去登陆

1回答
String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
String str4 = new String("abc");

System.out.println(str1 == str2);
System.out.println(str1 == str3);
System.out.println(str3 == str4);

自己运行一下这段代码,你就知道了,这里用的是"==",不是equals(),比较的是对象的hashCode()值。

str1和str2,指向的是常量池(内存中的一块区域)中的同一个"abc",所以他们指向的是同一个对象

但是str3和str4,都是新建一个对象,不指向常量池,自己独自为一个对象。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师