用equals方法比较两个内容一样的对象返回值是true还是false

 我来答
zhouaihui1010
推荐于2017-10-14 · TA获得超过3062个赞
知道小有建树答主
回答量:458
采纳率:100%
帮助的人:497万
展开全部
java中,
(1)对于字符串变量来说,equal比较的两边对象的内容,所以内容相同返回的是true。
至于你没问到的“==”,比较的是内存中的首地址,所以如果不是同一个对象,“==”不会返回true 而是false。
举个简单的例子,
String s1="abc", s2="abc";
String s3 =new String("abc");
String s4=new String("abc");
s1==s2 //true,
s1.equals(s2) //true,
s3.equals(s3) //true,equal比较的是内容
s3==s4//false,==比较的是首地址,所以是false
(2)对于非字符串变量,equals比较的内存的首地址,这时候和==是一样的,即比较两边指向的是不是同一个对象,

Sample sa1 = new Sample();
Sample sa2 = new Sample();
sa1.equals(sa2) //false,因为不是同一对象
注意,如果加上
sa1=sa2;
那么
sa1.equals(sa2) //true

针对你问的,如果你说的两个对象是非字符串的,那么参考第2条;否则请参考第一条
悉心且深远灬萨摩A
2012-10-17 · TA获得超过636个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:306万
展开全部
如果是Object的equals,它是比较的两个对象的hashCode,所以,只要用了new,那么就是false。如果重写了equals来比较内容,比如String,就是true
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式