Java 中String a="abc"和String a = new string("abc")

RT,两个有何区别?Stringa="abc";Stringb="abc";a==b->true,但是Stringa=newstring("abc");Stringb=n... RT,两个有何区别?
String a="abc";
String b="abc";
a==b->true,
但是String a = new string("abc");
String b = new string("abc");
a==b->flase;
为什么.
展开
 我来答
Call_me黄小邪
推荐于2018-05-17
知道答主
回答量:7
采纳率:0%
帮助的人:7.5万
展开全部

new String("abc")这种是new了一个Object,abc是被储存在其内部的值,“=”把指针赋给a,b,但是a,b指向的是不同的对象,所以返回值是false


大概是这种关系:

即a b指向不同的对象

百度网友cb4391b
2014-06-02 · TA获得超过242个赞
知道答主
回答量:117
采纳率:0%
帮助的人:73.7万
展开全部
所以说比较两个String的时候不应该用==, 第二种情况你用a.equals(b)就是true了

在java里物体的名字相当于一个标签。当你做第一种的时候,"abc"这个物体被创造了出来,并打上了一个a的标签,然后同一个物体又被打上了b这个标签,但本质上a和b是同一个物体,所以a==b ->true.

第二种的时候,b是一个新的物体,存储的位置和a不一样,所以a==b是false
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式