object类的equals和hashCode

news2024/12/27 11:14:16

Object类–基类

equals方法

Object类中的equals方法,底层是用的是""来实现的,
如果比较的两个数是基本类型,就是在比较其值是否相等;
如果比较的两个数是引用数据类型,那么就是比较其地址是否相等
在这里插入图片描述
如果输出语句是System.out.println(a
b)
输出的是false ,因为a和b 都单独开辟了一块空间

在这里插入图片描述

instanceof 运算符

在这里插入图片描述
判断前边这个对象是否是后面的这个类型,也就是anObject是否为String类型的
判断是否为这个类型的对象

js------typeof运算符

在这里插入图片描述
typeof加一个空格,再加一个变量------------返回该变量的类型
判断是什么类型的对象
b是一个对象 , c是一个字符串-----在浏览器里F12进行的输入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

hashCode方法

是为了获取哈希值,哈希值的计算是利用对象在堆中开辟的内存空间
哈希表是arr[i]%arr.length对应的数是几,存放到数组中的部位
在这里插入图片描述
在这里插入图片描述
equals方法与hashCode的关系:
①如果两个对象(内容)相同(也就说equals方法返回的是TRUE),它们的hashCode值一定相同(6-6)
②如果两个对象不相同(equals返回false),那么它们的hashCode可能相同也可能不同(图中的6和12)
③如果两个对象的hashCode值相同(hashCode方法返回的值是一样的–哈希冲突),那么它们可能相同也可能不同(跟②一样,比如6和12)–equals返回true或者false;
④如果两个对象的hashCode值不相同(hashCode返回的值不一样),那么它们肯定不相同
结论:如果要重写equals方法,就要重写hashCode方法
WHY???有100个对象
如果用equals去比较,那么一个对象要比对99次,有一个这样的对象,一共需要99*100/2----4950次
用hashCode ,把这一百个数求出hashCode值如果hashCode值不相同,直接不用比较,肯定不相等,而是比较相等的,看是否一样

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/351473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AcWing 841. 字符串哈希

题目描述 分析: 字符串 hash 小试牛刀 我们在之前模拟散列时,设置的哈希函数为将一个元素(element, e)输入哈希函数中,输出是一个整数,而那时的 eee 为一个有范围的整数。现在我们考虑更复杂的情形,eee 为一个字符串…

论文笔记NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

NeRF使用神经网络来表示场景。给定一个场景,输入该场景稀疏的视角图片,NeRF可以合成该场景新的视角的图片。 神经辐射场 神经辐射场(neural radiance field,NeRF)使用5D的向量值函数表示一个场景。 输入是连续的5D坐…

LeetCode 160. 相交链表

原题链接 难度:easy\color{Green}{easy}easy 题目描述 给你两个单链表的头节点 headAheadAheadA 和 headBheadBheadB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 nullnullnull 。 图示两个链表在节点 c1…

分享12款我常用的开源免费软件

嗨,大家好, 我是徐小夕, 在一个劳动力追求高性价的时代, 我们无时无刻不在追寻更高的工作学习效率, 提高工作舒适度,接下来我就和大家分享一下我之前用过的, 能提高工作效率的开源免费工具.1. 修图:Krita 【开源】image.png地址: https://krita.org/zh/Krita 是一款…

CK-GW06-E03与欧姆龙PLC配置指南

CK-GW06-E03与欧姆龙PLC配置指南CK-GW06-E03是一款支持标准工业EtherCAT协议的网关控制器,方便用户集成到PLC等控制系统中。本控制器提供了网络 POE 供电和直流电源供电两种方式,确保用户在使用无POE供电功能的交换机时可采用外接电源供电;系统还集成了六…

Mac环境下安装MongoDB数据库

一、下载安装 1.1 下载MongoDB 首先,从MongoDB官网下载自己想要使用的版本。 解压缩下载的压缩包重命名为mongodb,将mongodb文件夹复制到/usr/local目录下。 brew tap mongodb/brew brew install mongodb-community4.41.2 配置环境变量 打开.zshrc…

python 获取chrome浏览器的安装目录,即chrome的绝对路径

实现目标需要使用到(引包|倒包) 2 个 python 模块, import win32api import win32con 引言(扉页): 也适用于查找安装在Windows中的应用程序的绝对路径, 譬如:微信(WeChat…

APP自动化(1)-Appium中adb常用命令

1.建立Appium与手机模拟器的连接环境 首先确定的是Appium已经打开和手机模拟器已经打开并且appium点击了开始的按钮,然后用cmd进去win的dos系统, 输入tasklist找到这个进程号,每台电脑都是不一样的进程号要按照你自己的来 查询pid地址netst…

Git 构建分布式版本控制系统

版本控制概念Gitlab部署1.版本控制概念 1.1分类 (一)1 本地版本控制系统(传统模式) (二)2 集中化的版本控制系统 CVS、Subversion(SVN) (三)3 分布式…

linux程序分析工具

嵌入式调试工具1. nm2. addr2line3. readelf3.1 ELF 文件分类3.2 ELF文件组成3.3使用1. nm nm源于name,是linux下一个文本分析工具,可以罗列指定文件中的符号(函数名、变量,以及符号类型)。 nm命令参数如下: 用法:nm …

深入理解MySQLⅢ -- 锁与InnoDB引擎

文章目录锁概述全局锁表级锁表锁元数据锁意向锁行级锁行锁间隙锁&临键锁InnoDB引擎逻辑存储结构架构内存结构磁盘结构后台线程事务原理redo logundo logMVCC锁 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源&#x…

Fiddler安装教程、工具图解

目录 一、Fiddler是什么? 二、Fiddler原理 三、Fiddler安装 Fiddler界面介绍 四、常用的工具图解 4.1会话列表 4.2状态栏 4.3内容显示区 一、Fiddler是什么? Fiddler是客户端与服务器之间的HTTP代理,是当前最常用的HTTP协议抓包工具。 …

谈谈 《 JavaScript - DOM编程艺术 》这本书

前言 好吧,现在已经2023年了,对于这本书(第二版)来说可能有点老了,这本书不是很难理解,但也不是很适合新手读,当然,这本书并不是百宝书 📕 ,它更注重于编程的…

格式化字符串你都懂了吗

文章目录前言一、什么是格式化字符串?二、使用 % 格式化字符串三、使用 format() 格式化字符串总结前言 今天跟大家聊聊字符串的格式化这部分内容。乍一听“格式化”这三个字,有的初学者可能会懵:难道这是要清空字符串的节奏? 其…

网络管理之设备上线技术的发展现状和趋势

网络和网络设备无处不在 随着社会的发展和技术的进步,人类文明开始向信息时代演进,网络逐渐变成现代社会不可或缺的一部分,极大程度影响了人类的认知形式、思维方式与生活模式。从家庭网,到企业网;从无线网&#xff0…

Mysql MHA搭建

. 目录 机器配置 安装Docker Docker安装和启动Mysql8.0.26 搭建Mysql一主二从 设置三台机器免密访问 安装MHA 搭建问题记录 问题1 MHA验证主从复制报错Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation 问题2 MHA验证…

doris - 数仓 拉链表 按天全量打宽表性能优化

数仓 拉链表 按天全量打宽性能优化现状描述优化现状描述 1、业务历史数据可以变更 2、拉链表按天打宽 3、拉链表模型分区字段设计不合理,通用的过滤字段没有作为分区分桶字段 4、拉链表表数据量略大、模型数据分区不合理和服务器资源限制,计算任务执行超…

安装JupyterLab失败的解决方案

由于本人电脑安装的Python版本3.6比较低,所以可能存在下面两种方法都安装失败,最后给出一个简单省事的方法。Jupyter lab比Jupyter Notebook要好用,试了之后感觉跟VSCode一样的存在,所以还是值得安装来代替Jupyter Notebook使用。…

Ae:解释素材

所谓解释素材 Interpret Footage,就是通过修改素材的某些属性(像素长宽比、帧速率、颜色配置文件及 Alpha 通道类型等),让它能更好地参与到合成中去。Ae菜单:文件/解释素材快捷键:Ctrl Alt G在项目面板里…

【C语言】编程初学者入门训练(13)

文章目录121. 小乐乐算最高分122. 小乐乐计算求和123. 小乐乐计算函数124. 小乐乐查找数字125. kiki学程序设计基础126. kiki算期末成绩127. kiki说祝福语128. kiki的最高分129. 求质数的个数130. kiki去重整数并排序121. 小乐乐算最高分 问题描述:小乐乐的老师BoB…