Java面试八股之Java中==和equals()的区别

news/2024/9/23 7:58:02/
  1. Java中==和equals()的区别

操作符==:

对于基本数据类型(如int、char、boolean等),==比较的是它们的值是否相等。

对于对象引用类型,==比较的是两个对象的内存地址(即是否指向同一个对象实例)。也就是说,它检查的是两个引用是否指向内存中的同一个位置,也就是是否指向同一个对象。

equals()方法:

equals()是Object类中的一个方法,所有Java类都继承了这个方法。默认情况下,equals()方法的行为与==操作符在对象引用类型上的行为相同,即比较对象的内存地址是否相同。但是,通常建议并推荐为每个类重写equals()方法,以根据类的语义定义“逻辑相等性”。

重写后的equals()方法应该根据对象的逻辑内容(如属性值)来判断两个对象是否相等,而不是比较它们是否指向同一个内存地址。例如,对于一个表示人的Person类,可能需要比较姓名和年龄等属性是否相同来确定两个Person对象是否相等。

如果大家需要视频版本的讲解,欢迎关注我的B站:


http://www.ppmy.cn/news/1444591.html

相关文章

day84 json中实现简单验证码

项目中的问题: 1 修改JS或CSS后,页面不能及时更新? 把浏览器-->"开发者工具"-->"网络"-->选中"禁用缓存" 2 如何把HTML页面转为JSP页面 将jsp页面中的<% page contentType"text/html;charse…

07_for循环返回值while循环

文章目录 1.循环返回值2.yield接收for返回值3.scala调用yield方法创建线程对象4.scala中的while循环5.scala中的流程控制 1.循环返回值 for循环返回值是Unit 原因是防止产生歧义&#xff1b; 2.yield接收for返回值 // 2.yield关键字打破循环&#xff0c;可以使for循环输出…

WEB攻防-PHP特性-metinfoCMS审计实例

前置知识&#xff1a;PHP函数缺陷 测试环境&#xff1a;MetInfo CMS 函数缺陷导致的任意文件读取 漏洞URL&#xff1a;/include/thumb.php?dir 漏洞文件位置&#xff1a;MetInfo6.0.0\app\system\include\module\old_thumb.class.php <?phpdefined(IN_MET) or exit(No…

Qt Designer入门

安装 PyQt5提供了一个可视化图形工具Qt Designer&#xff0c;文件名为designer.exe。如果在电脑上找不到&#xff0c;可以用如下命令进行安装&#xff1a; pip install PyQt5-tools 安装完毕后&#xff0c;可在如下目录找到此工具软件&#xff1a; D:\Python3.9\Lib\site-pa…

Go源码--Strconv库

简介 Strconv 库是一些跨类型的转换函数集合&#xff0c;大家应该很熟悉。源码没有什么难点&#xff0c;主要是面试题有可能会出这种类型的&#xff0c;所以简单介绍下&#xff0c;主要介绍 以下两种常用转换&#xff0c;其他的没细研究&#xff0c;感兴趣的可以看看。 Strco…

Baidu comate智能编程助手评测

Baidu comate智能编程助手评测 作者&#xff1a;知孤云出岫 目录 一&#xff0e; 关于comate产品 二&#xff0e; 关于comate产品体验 三&#xff0e; 关于实际案例. 四&#xff0e; 关于baidu comate编程助手的实测体验感悟 五&#xff0e; …

StatusBar,状态栏设置中文

在Qt的ui中&#xff0c; 菜单栏–View–Property Editor–statusBarVisible–勾选– 在C代码中&#xff0c; sloem1.h private://任意写一个函数void onStatusBarShow();sloem1.cpp void sloem1::onStatusBarShow() {QString strLabel;//显示文字来源this->setTextResour…

centos上网卡突然找不到了

问题 今天登录centos突然发现ssh连接不上&#xff0c;在虚拟机中输入ifconfig才发现没有找到对应的网卡ens33了 解决 只需要输入两行命令就可以解决 禁用NetworkManager systemctl stop NetworkManagersystemctl disable NetworkManager 然后重启网络systemctl start netwo…