equals()方法本质上便是==,比较的是两个变量是否指向同一块内存地址
由于字符串String比较特殊,既可所以对象null,也能够详细的赋值,我们平时比较两个字符串时,常常比较的是值是否持平,而不太在意内存地址的问题,所以String类就掩盖重写了equals()方法实现比较字符串值持平。
Object.java

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

String.java

public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = length();
        if (n == anotherString.length()) {
            int i = 0;
            while (n-- != 0) {
                if (charAt(i) != anotherString.charAt(i))
                        return false;
                i++;
            }
            return true;
        }
    }
    return false;
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。