在Java中,equals()与==的不同之处

Asi*_*taq -2 java

我们知道==比较参考文献并equals()比较内容.但在检查Object类中的equals()实现后,我感到很困惑.实施是,

public boolean equals(Object obj) {
        return (this == obj);
    }
Run Code Online (Sandbox Code Playgroud)

正如你看到的实现.equals内部呼叫==运营商.然后它有何不同?

Jir*_*sek 5

它们的区别在于你可以覆盖equals(),但不能==以任何方式覆盖它们.

因此,equals()如果类作者决定如此,则可以检查两个对象的逻辑相等性,==并且总是比较引用,因此仅当两个操作数是相同的对象(或相同的原始值)时才是真的.