追🐟人~岁月浅笑风如歌

Java基础:【hashCode、equals和==】

思畅吖~·2023-05-17 14:06·22 次阅读

Java基础:【hashCode、equals和==】

 
相同点不同点
都与对象比较相关 hashCode返回的是int值,equals返回的是boolean值
可以用于比较对象是否相等 `==`用于比较对象引用是否相同
默认都比较对象的内存地址 equals可以被重写来按照自定义的方式比较对象

相同点:

  • hashCodeequals`==`都与Java中的对象相关,可以用于比较对象是否相等。
  • 它们都可以用于确定对象的身份,以及进行对象的比较。

不同点:

  • hashCode返回的是一个int值,而equals返回的是一个boolean值。
  • hashCodeequals方法通常会被重写,以实现按照自定义的方式比较对象。
  • `==`用于比较对象的引用是否相同,而不是比较对象的内容是否相等。

 

 
区别与联系==equals()hashCode()
描述 用于比较两个对象的内存地址是否相同 用于比较两个对象内容是否相等 用于获取对象的哈希码
原理 比较两个对象在内存中的地址是否完全相同 根据对象重写equals()方法来比较对象内容是否相等 返回对象的哈希码,根据哈希码判断两个对象是否一致
是否需要重写 不需要重写 需要重写 需要重写
作用场景 常用于比较基本类型数据和对象的引用 常用于比较两个对象实例的内容 常用于将对象作为键值对存储到哈希表中
实现方法 使用"=="操作符进行原始值的比较,使用equals()方法进行对象引用的比较 通过重写equals()方法来自定义对象内容的比较规则 通过重写hashCode()方法生成哈希码,以便在哈希表中存储和检索对象

总结:==是用于比较两个对象的引用是否相同,equals()是用于比较两个对象的内容是否相同,hashCode()是用于返回对象的哈希码,它们在Java中常用于对象的比较和存储。其中,equals()和hashCode()方法需要被重写以满足业务需求。

 

posted @   攻城狮_007  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示