教程
问答
博客
Python源码
Java源码
文档
开源
教程
问答
博客
Python源码
Java源码
文档
开源
免费学Golang
登录
注册
首页
问题
在java中==和equals的区别?
一尘不染
在java中==和equals的区别?
java
equals
==
在java中==和equals的区别?
阅读 450
收藏
2020-01-07
共1个答案
一尘不染
.equals(…) 只会比较所写的内容进行比较,不会多也不会少。
如果一个类没有覆盖equals方法,则默认为equals(Object o)覆盖了该方法的最接近的父类的方法。
如果没有父类提供重写,则它默认为最终父类Object中的方法,因此你只能使用该Object#equals(Object o)方法。根据对象API,这与==; 也就是说,当且仅当两个变量都引用相同的对象且引用相同且相同时,它才返回true 。因此,你将测试对象相等性而不是功能相等性。
hashCode如果你要进行覆盖,请务必记住覆盖,equals以免“违反合同”。根据API,如果hashCode()两个对象的方法显示等效,则从方法返回的结果必须相同equals。反过来并不一定是真的。
2020-01-08