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

Java中hashcode()和equals()关系

Object类是所有类的父类。

getClass():返回对象的字节码

hashcode():对象的hashcode值

equals():判断两个对象是否相等使用地址判断

native:

查看源码

代表本地方法(里层是C或者C++)

每个大的公司都有自己的JVM

hashcode值可以侧面的被当成对象的地址,但是hashcode是一种理念,通过散列运算实现每一个内存地址的唯一值。哈希算法非常多,只要符合理念即可。

openJDK提供了五种哈希算法,其中有一种是直接返回内存地址。就是内存地址的哈希值,这句话不算错,但不一定准确。

注意:如果两个对象相等,则这两个对象的hashcode()一定相等。

如果两个对象的hashcode()相等,则这两个对象不一定相等。(因为存在哈希碰撞)

如果两个对象的equals()相等,则这两个对象的hashcode()一定相等。

如果两个对象的hashcode()相等,则这两个对象的equals()不一定相等。(因为存在哈希碰撞丶)

 


http://www.mrgr.cn/news/3198.html

相关文章:

  • FPGA工程师成长路线(持续更新ing,欢迎补充)
  • android apk 加固后的地图加载异常及重新签名
  • 以简单的例子从头开始建spring boot web多模块项目(四)-多模块工具类
  • vue3+websocket的创建和使用,页面刷新保持长连接
  • 理解Flink并行度
  • php7.1编译安装
  • 【python】JS逆向中,手把手教会你如何层层突破瑞数加密
  • 【C++】经典爬楼梯问题的不同解法-C++学习资料
  • 数据结构——堆
  • (九)基于 Flink DataStream API 应用案例
  • 前端开发工程师面试整理-ES6+的新特性
  • pcdn闲置带宽被动收入必看教程。第五讲:光猫更换和基础设置
  • 详解线索分层的目的、维度与创新实践
  • 搜维尔科技:使用Geomagic Touch遥操作UR3机器人进行抓取放等操作
  • git命令大全及实操
  • git commit 时发生:fatal: cannot lock HEAD ref
  • Django后端架构开发:后台管理与会话技术详解
  • 安卓查询系统数据库(ContentResolver)带关键字解决方法
  • 数据库学习(进阶)
  • NSI程序打包脚本文件编写教程