黑马程序员技术交流社区
标题:
深究equals和==的真正区别?
[打印本页]
作者:
weidong10heima
时间:
2016-7-6 18:05
标题:
深究equals和==的真正区别?
深究equals和==的真正区别?
作者:
syinys7
时间:
2016-7-6 22:00
equals 是顶级父类Object类的成员
方法
,用于比较两个对象是否"相等",默认情况下比较的是对象的引用是否相同,
由于比较对象的引用没有意义,一般建议重写该方法,重写equals方法可以比较两个对象的属性值,
而==是一个
比较运算符号
,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
比如说
String s1="a";
String s2="a";
boolean b = s1.equals(s2);
System.out.println(s1 == s2);//比较的是地址值,两个对象的地址引用不一样,
false
System.out.println(b); //String类重写了equals方法,比较两个对象的内容,都是"a",是一样的,结果为
true
作者:
sgnx
时间:
2016-7-6 22:11
equals是object类中的方法,在object中它的底层是用的==,比较的是两个对象的地址是否相同,而==是一个比较运算符,比较的是内存地址。而一般在定义类的时候,我们会根据需求重写equals方法来满足需求,比如String类
作者:
scz63
时间:
2016-7-6 23:06
来看看,还没学到这,当先预习了
作者:
Insomnia!
时间:
2016-7-6 23:20
1楼 总结的挺好
作者:
迅雷
时间:
2016-7-6 23:22
1楼已经回答的挺好了
作者:
syso信任
时间:
2016-7-7 09:15
简单说就是equals比较的是两个的值是否相等
==比较的是两个地址值是否相同.
相等的值可能有多地址.
相同地址只能有一个值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2