请教一下equals()方法和“==”的差别

wanghu2000 2006-11-05 02:54:37
我的理解是:“==”比较的是对象的引用,只要引用的是同一个对象,则返回true;equals()比较的是对象的内容,只要内容相同则返回ture。
不知这样理解对不对,请各位多提宝贵意见。
...全文
275 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jayfantsy 2006-11-05
  • 打赏
  • 举报
回复
bigelf(好好学习,天天向上)
up一下...
newbinmaster 2006-11-05
  • 打赏
  • 举报
回复
补充:
==还可以比较基本类型的数值
==
如果是两个对象(句柄)的比较,就是引用了,
equals方法是比较两个对象的内容,而equals方法是由Object类的方法,如果你自己定义了对象还需要重新写一次equals方法。
rumlee 2006-11-05
  • 打赏
  • 举报
回复
楼主说的这种对于String这个类是没有问题的,但是对于自己写的一个类,如果你没有重写equals方法的话,就不对了。
SaintKaKa 2006-11-05
  • 打赏
  • 举报
回复
有时候比较对象需要重写对象的equals()方法
xiao_guanghui 2006-11-05
  • 打赏
  • 举报
回复
学习ing
daizhenbest 2006-11-05
  • 打赏
  • 举报
回复
学习
paradisense 2006-11-05
  • 打赏
  • 举报
回复
对~~!!!
艾榕 2006-11-05
  • 打赏
  • 举报
回复
并不是所有类的equals()方法都是比较内容,这只是java提供的一个比较内容的接口

String Integer这些类中之所以可以比较内容是因为他们重写了equals()方法,在方法体内做了对内容的比较。

而默认由Object继承来的equals()方法内实际还是==,同样是判断值或者是否为同一引用。
---------------------------------

赞同bigelf的观点

还有一般情况下最好还是用equals()
学习Java中 2006-11-05
  • 打赏
  • 举报
回复
如果是对象的比较可能一样,对于非对象的EQUALS()就是判断值
MAIJINGWEN 2006-11-05
  • 打赏
  • 举报
回复
贊同 bigelf(好好学习,天天向上)
bigelf 2006-11-05
  • 打赏
  • 举报
回复
并不是所有类的equals()方法都是比较内容,这只是java提供的一个比较内容的接口

String Integer这些类中之所以可以比较内容是因为他们重写了equals()方法,在方法体内做了对内容的比较。

而默认由Object继承来的equals()方法内实际还是==,同样是判断值或者是否为同一引用。
MAIJINGWEN 2006-11-05
  • 打赏
  • 举报
回复
equals()比较的是对象的内容,只要内容相同则返回ture。這句話我有所保留!
因為在內容相同之前要有一個先決條件:比較的兩個對象要來自同一個類!
success_dream 2006-11-05
  • 打赏
  • 举报
回复
lz,你理解的完全正确!记着“==”比较的是对象的引用,equals()比较的是对象的内容就可以了!

62,615

社区成员

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

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