黑马程序员技术交流社区

标题: Object类、String类的equals()方法比较的是什么? [打印本页]

作者: 任江峰    时间: 2013-5-9 15:36
标题: Object类、String类的equals()方法比较的是什么?
本帖最后由 任江峰 于 2013-5-9 21:00 编辑

Object类、String类的equals()方法比较的是什么?
作者: 金辉    时间: 2013-5-9 15:50
Object类的equals方法的本质其实是和“==”一样的,都是比较两个对象引用是否指向同一个对象(即两个对象是否为同一对象)。String类继承Object类后,也继承了equals方法,但String类对equals方法进行了重写,改变了equals方法的比较形式,equals判断的是值是否一样,“==”比较的是空间地址。
作者: 黑马-雷钊    时间: 2013-5-9 19:24
你好   String类的equals()方法比较的是两个字符串的内容是否完全相等。。这个api里有记载的   它复写了equals()方法。。
而object类的equals()比较的就是两个对象的地址值了    这个可以通过在代码中试验得出结果。。   
作者: 付银攀    时间: 2013-5-9 20:25
String 类 equal()方法表示比较两个字符串的内容如果内容一样返回true,
Object类 equals()方法则是用 == 表示要引用的是同一个字符串时才返回true
String 类继承Object类,并复写了equal()方法;在String类中,用==也可判断;两个String对象的引用是否相同


作者: Miss小强    时间: 2013-5-9 20:43
  1. public boolean equals(Object anObject) {
  2.         if (this == anObject) {
  3.             return true;
  4.         }
  5.         if (anObject instanceof String) {
  6.             String anotherString = (String)anObject;
  7.             int n = count;
  8.             if (n == anotherString.count) {
  9.                 char v1[] = value;
  10.                 char v2[] = anotherString.value;
  11.                 int i = offset;
  12.                 int j = anotherString.offset;
  13.                 while (n-- != 0) {
  14.                     if (v1[i++] != v2[j++])
  15.                         return false;
  16.                 }
  17.                 return true;
  18.             }
  19.         }
  20.         return false;
  21.     }
复制代码
这个是String类的equals方法的源代码;
作者: 蚂蚁搬家    时间: 2013-5-9 20:44
Object类中equals方法格式:public boolean equals(Object obj) {};
只有当obj和this指向同一存储空间时,equals才会返回true;两个对象的值相同,存储空间不同,equals依然返回false;
String类重写了Object类中的equals方法;
在Object类中,两个新建对象若不在同一存储空间,equals返回false,即比较的是对象的地址,在String类中,equals方法已被重写,
比较的是指针所指向对象的内容;
作者: Miss小强    时间: 2013-5-9 20:45
  1. public boolean equals(Object obj) {
  2.         return (this == obj);
  3.     }
复制代码
这是Object类的equals方法
现在应该了解了吧。。。
作者: Miss小强    时间: 2013-5-9 20:50
建议在取看看String类的compareTo方法。。。
一句话,String的equals方法是按照各个字符的ascii码值进行比较的,也就是字符串的自然顺序;
ascii码值大的就大




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2