黑马程序员技术交流社区

标题: 比较‘==’和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判断方法,如下:
  1. public class person {
  2.   String name;
  3.   int age;

  4.   public String getName(){
  5.     return name;
  6.    }

  7.   public int getAge(){
  8.     return age;
  9.    }


  10.   public person(sting name, int age){
  11.     this.name = name;
  12.   this.age = age;
  13.   }



  14.   public boolean equals(object obj){
  15.     if (!obj instance of Person){
  16.      return  false;
  17.     }
  18.    Person person =  (Object)obj;
  19.    return person.getName().equals(this.name) && person.getAge() == this.get;

  20.   }
  21. }
复制代码



作者: 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