当前位置: 首页 > news >正文

equals与hashCode的关系探究

equals与hashCode的关系:

1.equals 判断是否为同一个对象 hashCode判断是否为同一类 大部分类在重写equals方法时会重写hashCode方法​

2.如果两个对象相同 (equals方法返回true)那么他们的hashCode值一定相同​

3.如果两个对象不同(equals方法返回false)那么他们的hashCode值可能相同,可能不同​

4.如果两个对象hashCode值相同(存在哈希冲突),他们可能相同可能不同(equals方法可能返回true,可能返回false)​

5.如果两个对象hashCode值不同,那么他们两个肯定不同(equals=false)

 为了直观地感受这一关系,代码创建了两个字符串对象:
 

String a = "ok";
String b = new String("ok");
System.out.println(a == b);
System.out.println(a.hashCode());
System.out.println(b.hashCode());

 这里 a==b 返回的是false,因为”==”,比较的是引用地址,a是字符串常量池中的引用,b是通过new关键字在堆中的创建的对象,然而它们的hashCode值是相同的,这印证了“如果两个对象相同(equals方法返回true)那么他们的hashCode值一定相同,因为字符串类重写了equals和hashCode方法,保证了内容相同的字符串hashCode一致

http://www.dtcms.com/a/151177.html

相关文章:

  • 一 、环境的安装 Anaconda + Pycharm + PaddlePaddle
  • 火山云生态的体现
  • 容器内部无法访问宿主机服务的原因及解决方法
  • 深入解析:RocketMQ、RabbitMQ和Kafka的区别与使用场景
  • MySQL的日志--Redo Log【学习笔记】
  • opencv--图像
  • Synternet数据流正式上线Google Cloud Web3
  • Vue3 模板语法
  • AIGC架构与原理
  • gem5教程第四章 了解gem5统计和输出
  • Spring Cloud Eureka 与 Nacos 深度解析:从架构到对比
  • 设备存储空间不足怎么办?
  • 《浔川代码编辑器v2.1.0预告》
  • 硬件基本概念
  • ElasticSearch深入解析(二):核心概念
  • mybatis高级查询:一对多配置,一次性查出主表和子表中的数据
  • OJ笔试强训_25至48天_每天三道OJ
  • flutter和vue3项目利用webview_flutter插件通信
  • 亚信安全与联通数科达成战略合作,成立联信事业部
  • 信号与槽的认识
  • 在统信UOS1060上进行全盘备份
  • 编写 Markdown 技术文档示例
  • 【计算机视觉】CV项目实战- SiamMask 单阶段分割跟踪器
  • MCP Java SDK 与 Spring AI 强强联手:简化 Java AI 开发流程
  • spark—kafka
  • Linux脏页相关参数
  • unity编辑器的json验证及格式化
  • 哪些心电图表现无缘事业编体检呢?
  • AIGC vs 人类创作者:是竞争还是协作?
  • Kafka 保证多分区的全局顺序性的设计方案和具体实现