Java中的equals方法以及==

来源:互联网 发布:淘宝网实拍保护 编辑:程序博客网 时间:2024/05/21 16:07
  1. ==比较的是对象的内存地址,而不是对象内容。当然可用于int型数据比较,看两者是否相等。
  2. equals方法时Object类中的方法,不被重写时比较的也是对象的内存地址,重写之后比较的是对象中的内容。底层代码实现如下:
//这里直接调用==比较的是内存地址public boolean equals(Object obj) {    return (this == obj);}

在String类中重写之后的源码如下:

public boolean equals(Object anObject) {          if (this == anObject) {              return true;          }          if (anObject instanceof String) {              String anotherString = (String) anObject;              int n = value.length;              if (n == anotherString.value.length) {                  char v1[] = value;                 char v2[] = anotherString.value;                 int i = 0;                 while (n-- != 0) {                     if (v1[i] != v2[i])                             return false;                     i++;                 }                 return true;             }         }         return false;     }
原创粉丝点击