很多人可能一直不懂equals()和“==”的區別,只知道equals()是值比較,而“==”是比較地址,如果你只是這樣子認為可能你會不理解下面這幅圖:
為什么第一組比較equals()是false,而第二組則是true,不是說equals()是值比較,而dog1、dog2、s1、s2不都是空值,相等嗎?
原因就在於我們平常使用equals()方法都是重寫Object里面得equals()方法而來的,而Object類里面的equals()本身也就是使用“==”引用地址比較:
現在我們來看看我們平常最常用的String里面的equals()方法
是不是大不相同!
現在我們就可以總結一下equals()和“==”的區別了:最基本的equals()是一個方法,而“==”是操作符,然后其實equals()本質和“==”是沒有區別的,只是我們平時用的都是重寫過得equals(),比如
String,Integer都是重寫成適合自己的方法。方便我們平時的運用。