Object类中的equals默认的与“==”是等价的
“对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。 ”--引自jdk帮助文档
我们平时说的equals比较的是对象的内容,其实并不是绝对的,那是因为那个类中重写了Object类中的equals方法,而在那个方法中比较的是对象中的内容,比如我们比较熟悉的String类型的比较,我们说str1.equals(str2)比较的是对象中的内容,本质上是因为String类中重写了Object类中的equals方法。
而对于我们自己写的类,进行比较的时候如果直接调用equals进行比较,我们使用的还是从Object类中继承的equals,所以还是相当于“==”,我们想让我们的equals比较内容,怎么办?重写equals方法喽。
总结:
如果没有重写Object类中的equals,比较的是“==”;
如果重写了Object类中的equals,让它来比较对象的内容,那么比较的就是对象的内容。