黑马程序员技术交流社区
标题:
equals和==还是有点混
[打印本页]
作者:
回天之力
时间:
2013-11-3 19:11
标题:
equals和==还是有点混
本帖最后由 回天之力 于 2013-11-3 19:23 编辑
暴风截图201311312418381.jpg
(60.09 KB, 下载次数: 23)
下载附件
2013-11-3 19:09 上传
大家看我用红笔画出来的部分,为什么比老师比的时候用俩个比?还不是用相同的比?
哪位大牛能根据各种情况在这里总结一下吗?thanks
作者:
高亮亮
时间:
2013-11-3 19:18
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同
作者:
joechen
时间:
2013-11-3 19:22
超类Object中equals用的就是==,在没用复写equals方法之前两个都是一样的看两个引用是否指向同一个对象。要是说错了,欢迎指正
作者:
回天之力
时间:
2013-11-3 19:26
要的不是这样的答案 这些在前面的帖子里都有 因为我有点时候看它们俩一样用 有时又不一样 所以又混了,能举多点例子 具体说明一下么
作者:
ixiangfeng
时间:
2013-11-3 19:31
图片看不清 而且这两个东西的知识就那么两句话 你看懂那几句话我想就没问题了吧
作者:
帅气的冬瓜
时间:
2013-11-3 19:33
你说的应该是这句吧:
return this.name.equals(p.name) && this.age==p.age;
首先判断hashcode的值是否相同,判断equals是否为true,不同,调用equals.要明白哈希表!
左边比较的是地址值是否相同,右边比较的是值是否相等。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2