很多人可能一直不懂equals()和“==”的区别,只知道equals()是值比较,而“==”是比较地址,如果你只是这样子认为可能你会不理解下面这幅图:
为什么第一组比较equals()是false,而第二组则是true,不是说equals()是值比较,而dog1、dog2、s1、s2不都是空值,相等吗?
原因就在于我们平常使用equals()方法都是重写Object里面得equals()方法而来的,而Object类里面的equals()本身也就是使用“==”引用地址比较:
现在我们来看看我们平常最常用的String里面的equals()方法
是不是大不相同!
现在我们就可以总结一下equals()和“==”的区别了:最基本的equals()是一个方法,而“==”是操作符,然后其实equals()本质和“==”是没有区别的,只是我们平时用的都是重写过得equals(),比如
String,Integer都是重写成适合自己的方法。方便我们平时的运用。