在java中,String s1='java',String s2='java',为什么s1==s2,是false,而s1.equals(s2)是true
5个回答
展开全部
这个就是值传递和引用传递的问题了,==比较的栈值,即s1!=s2,equals比较的是堆里的值,都是java,所以是true
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
“==”比较的是地址是否相同。比如,int a=0; int b=a;这样并未给b一个新的地址,而是让它指向a的地址。也就是a和b相当于指向同一个地址的指针。这样a==b是对的。
但equals比较的是内容是否相同。比如int a=0;int b=0;他会检查a和b里的东西是否相同。这里都是0,因此相同。
但equals比较的是内容是否相同。比如int a=0;int b=0;他会检查a和b里的东西是否相同。这里都是0,因此相同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
equals比的是引用的值,所以想等,=是比引用的地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java中对于数字的对比用 == 但是对于字符串当然是equals,你上面的代码,是字符串赋值!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询