java中的调用覆写equals+hashCode后是否就等同于==比较两对象地址是否相同了?

具体说就是我覆写引用对象的equals方法和hashCode方法,如果同时调用equals方法和hashCode方法就等同于调用==方法,来比较两对象地址是否相同了?这样能达到快速比较的作用?
而如果只是调用equals方法则只是比较两对象内容相同,而不是地址是否相同?

equals比较两对象内容是否相同;==比较两对象地址是否相同。hashCode用来计算对象hash值。

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