Java-Object.equals

临世驻年 2020-10-15 10:54:23
Java-Object.equals方法和==有什么区别?如果没有区别,应该怎么去产生区别?
...全文
1908 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SpiritPoss 2020-10-16
  • 打赏
  • 举报
回复
https://blog.csdn.net/qq_35849955/article/details/82988560
开心就好O 2020-10-15
  • 打赏
  • 举报
回复
这是Object的equals方法 public boolean equals(Object obj) { return (this == obj); } 想要有区别就重写,比如String类就重写了 public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
meet_aas 2020-10-15
  • 打赏
  • 举报
回复
这个区别是肯定有的 简单点来说就是equals只比较内容是否相等 而==不仅比较内容是否相等还会比较存储地址是否相等
凉醉 2020-10-15
  • 打赏
  • 举报
回复
一般情况下equal表示的是内容相同,==表示的是引用相同。 比如 String s1 = new String("string"); String s2 = new String("string"); 则 s1.equals(s2)为true,s1==s2为false。 如果 String s3 = s1; 则s1.equals(s3)和s1==s3均为true。 object类的equal好像是直接比较==的,所以如果自定义类的话,一般是要求重写equal方法的。object类只是提供这个统一的方法而已,内容要自己定义。
KeepSayingNo 2020-10-15
  • 打赏
  • 举报
回复
有区别,==只能比较基础类型,如果是对象类型,例如Person对象,你就要自己写equals方法比较这个对象的哪些属性从而认为是相等的

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧