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

Object类和hashcode方法

一.Object类.

1.所有类的父类,如果一个类没有继承那个类,那么都是默认继承于Object这个类。

2.object中存在的方法:(画横线的方法代表过时了,但是能用)

3.这里能用equals的方法是因为默认继承了Object这个类

4. 运行false的原因我们需要看Object中equals实现的逻辑。

5.这两个写法是一样的,所以我们需要重写equals的方法:

6.重写的equals方法。这里重写之后equals的功能是比较字符串是否相同。(这里它就会自动重写一个比较字符串是否相同的方法)

7.在某些情况下需要重写equals的方法,在这里我们比较的就是String,所以equals需要重写。原生Object中的equals是比较地址的。简而言之比较内容就是要重写equals方法,地址则不用。

二.hashcode方法

1.native是c/c++来实现底层逻辑,返回一个地址。

2.它是继承于Object类的,代码实现:

3.从代码上看,确实是两个不同的对象,但是从博哥的业务逻辑来看,认为名字一样就是同一个人,期望这两个对象放在同一个位置,返回同一个相同的整数。意味我们就需要重写hashcode这个方法。

4.方法重写:

然后一路next就行了。(这里用户不要去重写equals)

最后就是相同的整数

5.只要是自定义类型,一定要重写:(在Generate中可以用编译器帮助构造方法)

比如hashcode和equals方法。

get和set和toString可以选择重写


http://www.kler.cn/a/505135.html

相关文章:

  • 链接加载与ATT汇编
  • 【DevOps】Pipeline功能语法
  • 从0到1搭建推荐系统 -- 数据驱动的算法与架构设计(带数据集)
  • 脚本练习3
  • 统计学习算法——逻辑斯谛回归
  • vue3计算属性
  • G1原理—5.G1垃圾回收过程之Mixed GC
  • 报告分享 | 大语言模型安全和隐私研究综述
  • 使用 WPF 和 C# 绘制覆盖网格的 3D 表面
  • CF 368A.Sereja and Coat Rack(Java实现)
  • uniapp 小程序 textarea 层级穿透,聚焦光标位置错误怎么办?
  • next-auth v5 结合 Prisma 实现登录与会话管理
  • NVIDIA PyTorch Docker 镜像安装
  • RustDesk ID更新脚本
  • macos 一直报错 XXX 将对你的电脑造成伤害。你应该将它移到废纸篓
  • VSCode开发STM32,并支持C++
  • Spring官网构建Springboot工程
  • 【llama_factory】qwen2_vl训练与批量推理
  • DAMA GDPA 备考笔记(二)
  • 3.flask蓝图使用