黑马程序员技术交流社区
标题:
比较‘==’和equals的区别
[打印本页]
作者:
xinchi
时间:
2015-9-21 22:13
标题:
比较‘==’和equals的区别
‘==’和equals有什么区别?
作者:
天涯莫名
时间:
2015-9-21 22:35
==是运算符,判断两个数据是否相等,或者判断对象是否是同一个.
equals是方法,判断两个对象的hashcode值是否相同,很多类里都会重写该方法,用来判断两个对象的属性是否相同
作者:
pengwei1989
时间:
2015-9-21 22:43
我也想知道这个问题的答案
作者:
召唤吧Bymax
时间:
2015-9-21 22:46
1楼正解 不过目前我还没有遇到用equals的地方
作者:
任振铭
时间:
2015-9-21 22:47
==用来判断数据是否相等,equal可以用来判断字符串是否相同,其他功能我还不知道
作者:
xinchi
时间:
2015-9-22 09:41
天涯莫名 发表于 2015-9-21 22:35
==是运算符,判断两个数据是否相等,或者判断对象是否是同一个.
equals是方法,判断两个对象的hashcode值是否 ...
哇,好厉害啊,解析的太全面了
作者:
程序猿小哲
时间:
2015-9-22 09:54
1楼回复的很详细,也很专业!!!
作者:
heshiwei
时间:
2015-9-22 10:12
一般来讲:
1.== 比较的是地址吧
2.equals比较的是内容,大概是这样。
总之:
==比较的是地址是没问题的。(Java没有运算符重载)
equals到底根据什么判断两者相同是可以自定义的,比如字符串的equals比较的是两者的字符序列相同
当然你也可以给自定义的对象加上自定义的eqauls判断方法,如下:
public class person {
String name;
int age;
public String getName(){
return name;
}
public int getAge(){
return age;
}
public person(sting name, int age){
this.name = name;
this.age = age;
}
public boolean equals(object obj){
if (!obj instance of Person){
return false;
}
Person person = (Object)obj;
return person.getName().equals(this.name) && person.getAge() == this.get;
}
}
复制代码
作者:
982194776
时间:
2015-9-22 10:15
一个是判断值,一个是判断地址
作者:
沙鹰
时间:
2015-9-22 11:18
==比较的是地址值。equals如果没有被重写的话也是比较地址值,重写后就看是怎么重写的了
作者:
meijunwei6275
时间:
2015-9-22 19:19
==:
基本类型:比较的是基本类型的值是否相同
引用类型:比较的是引用类型的地址值是否相同
equals:
默认情况下,比较的对象的地址值是否相同。
如果我们想按照我们的需要把对象进行比较,那么,我们应该重写equals()方法。
作者:
hnxtzouyuxi
时间:
2015-9-23 00:23
==可以用于比较基本数据类型,比较的就是基本数据类型的值是否相等。
==可以用于比较引用数据类型,比较的是对象的地址值是否相等。
equals只能用于比较引用数据类型的。
equals Object提供的equals是用于比较对象地址值是否相同。
equals自定义类中,如果重写了equals方法,那么就是按照你自己的需求来比较的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2