Java中euqals方法解惑

1.超类object中定义的equals方法与运算符“==”的作用相同,都是判断两个对象所引用的内存地址是否相同。

源码:java.lang.Object

1     public boolean equals(Object obj) {
2       return (this == obj);
3     }

2.String类重写了Object累的equals方法

源码:java.lang.String

    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;
    }

3.如果自己定义的类,需要自己重写equals方法,否则会继承Object类中equals方法。

posted @ 2012-10-30 09:39  梅子毅  阅读(216)  评论(0编辑  收藏  举报