Java面試題之Java中==和equals()和hashCode()的區別


“==”:

  ==是運算符,用來比較兩個值、兩個對象的內存地址是否相等;

“equals()”:

  equals是Object類的方法,默認情況下比較兩個對象是否是同一個對象,內部實現是通過“==”來實現的。

如果想比較兩個對象的其他內容,則可以通過重寫equals方法,

例如:String類就重寫了equals方法,改成了對象的內容是否相等。

具體實現可以參考:https://www.cnblogs.com/hujinshui/p/10038044.html

“hashCode()”:

  hashCoed也是Object類里面的方法,返回值是一個對象的哈希碼,同一個對象哈希碼一定相等,但不同對象哈希碼也有可能相等。

如果兩個對象通過equals方法比較相等,那么他的hashCode一定相等;

如果兩個對象通過equals方法比較不相等,那么他的hashCode有可能相等;

例如以下程序:

class Untitled {
    public static void main(String[] args) {
        System.out.println("AaAa".hashCode());//2031744
        System.out.println("BBBB".hashCode());//2031744
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM