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

java基础09-==和equals()的区别,附代码举例

==和equals()的区别

在Java中,==和equals()是两个不同的运算符,它们在比较对象时有着本质的区别。

== 运算符:

== 用于比较两个基本数据类型(如int、char等)或两个对象的引用。
当用于比较基本数据类型时,它会比较它们的
当用于比较对象引用时,它会检查两个引用是否指向内存中的同一个对象。换句话说,它检查的是两个引用是否完全相同(即它们指向内存中的同一个地址)。

equals() 方法:

equals() 是Object类中的一个方法,所有Java对象都继承自Object类,因此所有的Java对象都有这个方法。
默认情况下,equals()的工作方式与==相同,即检查两个引用是否指向内存中的同一个对象。
但是,许多类(如String、Integer等)重写了equals()方法,使其按预期工作,即比较对象的“内容”而不是它们的引用。例如,对于String类,equals()会比较字符串的内容,而不是比较字符串对象的引用。

代码示例:

public class TestMain {  public static void main(String[] args) {  // 使用==比较基本数据类型  int a = 5;  int b = 5;  System.out.println(a == b); // 输出:true  // 使用==比较对象引用(通常不推荐)  Object obj1 = new Object();  Object obj2 = new Object();  System.out.println(obj1 == obj2); // 输出:false,因为它们是不同的对象实例  // 使用equals()比较对象内容(通常推荐)  String str1 = "hello";  String str2 = "hello";  System.out.println(str1.equals(str2)); // 输出:true,因为字符串的内容相同  }  
}

总结:
== 用于比较基本数据类型的值或对象的引用。
equals() 用于比较对象的“内容”。在许多情况下,它被重写以提供更有意义的比较行为。

在实际编程中,建议使用equals()方法来比较对象的内容,因为这样可以提供更大的灵活性并且遵循Java的最佳实践。

http://www.lryc.cn/news/287374.html

相关文章:

  • qml与C++的交互
  • LabVIEW电路板插件焊点自动检测系统
  • 第十一站:多态练习ODU
  • 【深度学习】详解利用Matlab和Python中 LSTM 网络实现序列分类
  • Unity 工厂方法模式(实例详解)
  • 2024年美赛数学建模思路 - 案例:异常检测
  • 一键完成,批量转换HTML为PDF格式的方法,提升办公效率
  • 【重点问题】攻击面发现及管理
  • UE4外包团队:国外使用UE4虚幻引擎制作的十个知名游戏
  • 解决springboot+mybatisplus返回时间格式带T
  • 纯命令行在Ubuntu中安装qemu的ubuntu虚拟机,成功备忘
  • Vue的学习Day1_是什么以及两种风格
  • 磁悬浮人工心脏的不良事件分析:美国FDA数据库的启示
  • HarmonyOS(十二)——全面认识HarmonyOS三种渲染控制
  • SQL 系列教程(二)
  • CSS实现文本和图片无限滚动动画
  • MacOS 无法ping 通 github.com 解决方案
  • Mac 也能玩文明6!下载安装详细教程
  • git tag的用法详解
  • TC397 EB MCAL开发从0开始系列 之 [17.1] ETH配置实战 - ping/发送
  • Scrapy爬虫在新闻数据提取中的应用
  • 【服务器GPT+MJ+GPTs】创建部署GPT+MJ+GPTs程序网站
  • C语言零基础入门第2天《 visual studio下载安装教程和搭建开发环境及踩坑指南》(保姆级图文教程)
  • 分析Vue3生命周期
  • Android 13.0 Launcher3 禁止在HotSeat创建Folder文件夹功能实现
  • 大模型训练 - 华为机试真题第二题(200分)
  • 创作活动(九十三)———ChatGPT 和文心一言哪个更好用?
  • Spring 声明式事务 @Transactional(详解)【面试重点,小林出品】
  • CSS之高度塌陷和外边距塌陷
  • 基于SpringBoot Vue美食网站系统