Java中的==与equals的区别

区别

首先,==是运算符 ,equals()是方法

==

== 是一个二元运算符,用于比较两个对象的引用是否相同。当使用 == 进行比较时,Java会检查两个对象的内存地址是否相同。如果两个对象的内存地址相同,则认为它们是相同的。

  • 如果比较的对象是基本数据类型(byte、short、int、long、float、double、char、boolean),则比较数值是否相等
  • 如果比较的是引用数据类型(类、接口、数组、枚举、注解、字符串),则比较的是对象的内存地址是否相等

对于==来说,无论是比较基本数据类型,还是引用数据类型的变量,其比较的都是值,只是引用类型变量存的值是对象的地址

引用类型对象变量其实是一个引用,它们的值是指向对象所在的内存地址。

equals方法

equals()是一个方法,用于比较两个对象的值是否相同。当使用 equals 进行比较时,Java会比较两个对象的属性或内容是否相同。如果两个对象的属性或内容相同,则认为它们是相同的。

  • 如果类未重写equals方法

调用equals时,会调用Object中的equals方法(实际使用的也是==操作符)

  • 如果类重写了equals方法

调用equals时,会调用该类自己的equals方法(一般是比较对象的内容是否相同)。

示例

java 复制代码
// 比较两个整数是否相等
int x = 10;
int y = 10;
System.out.println(x.equals(y)); // 输出: true

// 比较两个浮点数是否相等
float f1 = 1.0f;
float f2 = 1.0f;
System.out.println(f1.equals(f2)); // 输出: true

// 比较两个字符串是否相等
String str1 = "hello";
String str2 = "hello";
System.out.println(str1.equals(str2)); // 输出: true
java 复制代码
String str1 = "hello";
String str2 = new String("hello");
System.out.println(str1.equals(str2)); // 输出: true
System.out.println(str1 == str2); // 输出: false
相关推荐
李辰洋2 分钟前
go tools安装
开发语言·后端·golang
Code_Geo2 分钟前
agent设计模式:第三章节—并行化
java·设计模式·agent·并行化
Javatutouhouduan6 分钟前
2025Java高质量面试真题汇总!
java·高并发·java面试·java面试题·后端开发·java架构师·java八股文
wanfeng_097 分钟前
go lang
开发语言·后端·golang
绛洞花主敏明9 分钟前
go build -tags的其他用法
开发语言·后端·golang
ByteCraze13 分钟前
秋招被问到的常见问题
开发语言·javascript·原型模式
码银17 分钟前
【python】基于 生活方式与健康数据预测数据集(Lifestyle and Health Risk Prediction)的可视化练习,附数据集源文件。
开发语言·python·生活
Pluchon19 分钟前
硅基计划5.0 MySQL 叁 E-R关系图&联合/多表查询&三大连接&子查询&合并查询
开发语言·数据库·学习·mysql
kyle~26 分钟前
C++---嵌套类型(Nested Types)封装与泛型的基石
开发语言·c++·算法
sali-tec29 分钟前
C# 基于halcon的视觉工作流-章48-短路断路
开发语言·图像处理·人工智能·算法·计算机视觉