栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java之~hashCode和equals的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java之~hashCode和equals的区别

==  不能重写

1,基本数据类型 

        基础数据类型比较的是他们值。

2,引用类型(类、接口、数组)   

        “==”对比的是两个对象的内存地址是否相同   。

string例外

string在jvm虚拟机中的方法区存放,方法区中声明的八种基本数据类型和字符串常量。上边的str1和str2就是字符串常量,new String()的,是字符串实例化对象,是要放在堆里边的,切莫混淆。

equals 可以重写

equals方法用于比较对象的内容是否相等

默认比较的也是两个对象在java虚拟机中的地址,但是我们可以对一个对象的equals方法进行重写

 

 


hashCode

1,hashcode方法只有在集合中用到

2,hashCode的设计初衷是提高哈希容器的性能

3,equals的效率是没有hashCode高的

4,hashcode 返回一个对象在java虚拟机中的地址。hashCode方法实际上返回的就是对象存储的物理地址(实际可能并不是)。   

总结:

如果两个对象的hashCode()相等,那么他们的equals()不一定相等。
如果两个对象的equals()相等,那么他们的hashCode()必定相等。

参考:真正搞懂hashCode和hash算法_成都彭于晏的博客-CSDN博客_hashcode怎么算出来的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270818.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号