
java中的调用覆写equals+hashCode后是否就等同于==比较两对象地址是否相同了? 10
具体说就是我覆写引用对象的equals方法和hashCode方法,如果同时调用equals方法和hashCode方法就等同于调用==方法,来比较两对象地址是否相同了?这样...
具体说就是我覆写引用对象的equals方法和hashCode方法,如果同时调用equals方法和hashCode方法就等同于调用==方法,来比较两对象地址是否相同了?这样能达到快速比较的作用?
而如果只是调用equals方法则只是比较两对象内容相同,而不是地址是否相同? 展开
而如果只是调用equals方法则只是比较两对象内容相同,而不是地址是否相同? 展开
3个回答
展开全部
equals比较两对象内容是否相同;==比较两对象地址是否相同。hashCode用来计算对象hash值。
调用==方法的时候不会判断对象内部的内容以及哈希值是否一致。调用equals方法的时候是判断对象内容是否一致,不处理地址是否相同。
调用==方法的时候不会判断对象内部的内容以及哈希值是否一致。调用equals方法的时候是判断对象内容是否一致,不处理地址是否相同。
展开全部
1、这是java se中非常典型的笔试和面试题。
2、"==",即全等比较,它判断的是地址是否相等,如果地址相同的话,也就不用比较eqauls了。
3、原始的"equals"是和“===”的完全等同,即Object的equals和“=="完全等同。
4、java se规范约定,如果重写equals方法,那也要重写hashCode方法,使equals为真的情况,hashCode的值也是相同的,此为约定而非强制。
5、回归原题,只要重写了equals方法,就和”===“不等等了。
再思考下吧。
2、"==",即全等比较,它判断的是地址是否相等,如果地址相同的话,也就不用比较eqauls了。
3、原始的"equals"是和“===”的完全等同,即Object的equals和“=="完全等同。
4、java se规范约定,如果重写equals方法,那也要重写hashCode方法,使equals为真的情况,hashCode的值也是相同的,此为约定而非强制。
5、回归原题,只要重写了equals方法,就和”===“不等等了。
再思考下吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单记住一句话,==比较的是地址,equals比较的是值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询