equals比较两对象内容是否相同;==比较两对象地址是否相同。hashCode用来计算对象hash值。
调用==方法的时候不会判断对象内部的内容以及哈希值是否一致。调用equals方法的时候是判断对象内容是否一致,不处理地址是否相同。
1、这是java se中非常典型的笔试和面试题。
2、"==",即全等比较,它判断的是地址是否相等,如果地址相同的话,也就不用比较eqauls了。
3、原始的"equals"是和“===”的完全等同,即Object的equals和“=="完全等同。
4、java se规范约定,如果重写equals方法,那也要重写hashCode方法,使equals为真的情况,hashCode的值也是相同的,此为约定而非强制。
5、回归原题,只要重写了equals方法,就和”===“不等等了。
再思考下吧。
简单记住一句话,==比较的是地址,equals比较的是值。