在java中,String s1='java',String s2='java',为什么s1==s2,是false,而s1.equals(s2)是true

 我来答
qinghechaoge
2011-12-07 · 超过23用户采纳过TA的回答
知道答主
回答量:133
采纳率:0%
帮助的人:71.4万
展开全部
这就涉及到传值和传引用的问题了。 对于String类型来说 用==比较的是两个字符串所指向的地址,因为这两个变量不是指向同一个地址,所以他们两个==当然是false了,而equals是比较两个变量的值,两个变量的值都是java字符串 当然是一样的了
单绫11
2011-12-16
知道答主
回答量:17
采纳率:0%
帮助的人:7.5万
展开全部
这个就是值传递和引用传递的问题了,==比较的栈值,即s1!=s2,equals比较的是堆里的值,都是java,所以是true
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
师紫桐w
2019-06-10
知道答主
回答量:3
采纳率:0%
帮助的人:2020
展开全部
“==”比较的是地址是否相同。比如,int a=0; int b=a;这样并未给b一个新的地址,而是让它指向a的地址。也就是a和b相当于指向同一个地址的指针。这样a==b是对的。
但equals比较的是内容是否相同。比如int a=0;int b=0;他会检查a和b里的东西是否相同。这里都是0,因此相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunchongkai505
2011-12-07 · TA获得超过1004个赞
知道小有建树答主
回答量:959
采纳率:0%
帮助的人:354万
展开全部
equals比的是引用的值,所以想等,=是比引用的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c880f22
2011-12-07
知道答主
回答量:72
采纳率:0%
帮助的人:30.9万
展开全部
java中对于数字的对比用 == 但是对于字符串当然是equals,你上面的代码,是字符串赋值!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式