读书人

equals跟==

发布时间: 2012-10-08 19:54:56 作者: rapoo

equals和==

public static void main(String[] args) {String s1 = new String("a");String s2 = new String("a");System.out.println(s1==s2);System.out.println(s1.equals(s2));s1=s2;System.out.println(s1==s2);System.out.println(s1.equals(s2));}

----------------------------------------

结果
false
true
true
true
----------------------------------------
说明: ==比较是两个对象的引用,equals是比较对象的内容。
Object中equals 源码
 public boolean equals(Object obj) {return (this == obj);    }


如果对象没有重写equals方法,则==和equals是相同的。

String 重写equals方法
  public boolean equals(Object anObject) {if (this == anObject) {    return true;}if (anObject instanceof String) {    String anotherString = (String)anObject;    int n = count;    if (n == anotherString.count) {char v1[] = value;char v2[] = anotherString.value;int i = offset;int j = anotherString.offset;while (n-- != 0) {    if (v1[i++] != v2[j++])return false;}return true;    }}return false;    }

读书人网 >编程

热点推荐