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

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.lryc.cn/news/521596.html

相关文章:

  • 速通Docker === 介绍与安装
  • OpenStack 网络服务的插件架构
  • SAP SD销售模块组织架构介绍(销售组织、分销渠道等)
  • CMake学习笔记(2)
  • Linux下源码编译安装Nginx1.24及服务脚本实战
  • 4、dockerfile实现lnmp和elk
  • Portainer.io安装并配置Docker远程访问及CA证书
  • 探索 Transformer²:大语言模型自适应的新突破
  • Flutter 多终端测试 自定义启动画面​​​​​​​ 更换小图标和应用名称
  • rsarsa-给定pqe求私钥对密文解密
  • flutter开发-figma交互设计图可以转换为flutter源代码-如何将设计图转换为flutter源代码-优雅草央千澈
  • Deep4SNet: deep learning for fake speech classification
  • 3 前端: Web开发相关概念 、HTML语法、CSS语法
  • SpringBoot工程快速启动
  • Unity WebGL:本机部署,运行到手机
  • 【线性代数】行列式的概念
  • Android SystemUI——StatusBar视图创建(六)
  • Picocli 命令行框架
  • spring-cloud-starter-gateway 使用中 KafkaAppender的问题
  • 【全套】基于分类算法的学业警示预测信息管理系统
  • Elasticsearch Python 客户端是否与自由线程 Python 兼容?
  • 基于大语言模型的组合优化
  • #CSS混合模式:解决渐变背景下的文字可见性问题
  • Vue2+OpenLayers给标点Feature添加信息窗体(提供Gitee源码)
  • 实战threeJS数字孪生开源 数字工厂
  • 【Python基础篇】——第3篇:从入门到精通:掌握Python数据类型与数据结构
  • 算法3(力扣83)-删除链表中的重复元素
  • HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载,Scroll滚动到顶部
  • .NET8.0多线程编码结合异步编码示例
  • SpringBoot项目中解决CORS跨域资源共享问题