黑马程序员技术交流社区
标题:
== 和 equals 的区别
[打印本页]
作者:
wangkerui
时间:
2014-5-8 08:31
标题:
== 和 equals 的区别
本帖最后由 wangkerui 于 2014-5-8 17:58 编辑
== 和 equals 有什么区别啊,求指导!
作者:
嗯√低调〆
时间:
2014-5-8 08:44
equals 方法是object中的方法,一些类比如String ArrayList等都会覆盖此方法的,方法一旦覆盖他们的实现原来肯定就一样,比较的东西自然就不一样了,所以equals比较的到底是什么东西,你只能去查看这个类中是否覆盖的这个方法,还有它的原代码是如何实现的,比如String类就覆盖了equals方法,比较的是2个字符串的内容是否相同。如果没覆盖,但是你又调用了,那用的就是object中的equals方法。
你也可以自己定义一个类,然后覆盖equals方法,里面写上你认为2个指向型引用或对象,该方法返回值为真的要求。比如你定义了1个person这个类,你可以把equals方法定义为name相同即返回真,或者age相同即返回为真,或者其它情况都行,随你自己便。但是如果2个person用“==”比较,返回的肯定是flase.
是不是可以这么理解,==比较的是地址,equals比较的是内容
而==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
作者:
Lin0411
时间:
2014-5-8 08:45
“==”比较的是两个基本类型的数据或两个对象的引用(即存储对象的地址值)是否相等,而“equals”比较的是
两个独立对象的内容是否相同,可以自定义,例如String str1= new String("abc")和String str2= new String("abc"),System.out.println(str1 == str2)输出为false,而System.out.println(str1 .equals(str2))输出为true。
作者:
℡Bruce
时间:
2014-5-8 10:06
最简单就是:
==是值比较(比较对象的首地址),同一对象才返回True
equal是引用比较,内容相同就返回True
作者:
奇迹
时间:
2014-5-9 02:44
== 比的是对象
equals比较的字符串
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2