Java中equals()和“==”的區別


  很多人可能一直不懂equals()和“==”的區別,只知道equals()是值比較,而“==”是比較地址,如果你只是這樣子認為可能你會不理解下面這幅圖:

 

為什么第一組比較equals()是false,而第二組則是true,不是說equals()是值比較,而dog1、dog2、s1、s2不都是空值,相等嗎?

原因就在於我們平常使用equals()方法都是重寫Object里面得equals()方法而來的,而Object類里面的equals()本身也就是使用“==”引用地址比較:

現在我們來看看我們平常最常用的String里面的equals()方法

是不是大不相同!

  現在我們就可以總結一下equals()和“==”的區別了:最基本的equals()是一個方法,而“==”是操作符,然后其實equals()本質和“==”是沒有區別的,只是我們平時用的都是重寫過得equals(),比如

String,Integer都是重寫成適合自己的方法。方便我們平時的運用。

 


免責聲明!

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



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