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
相关推荐
xingpanvip15 分钟前
星盘接口开发文档:组合三限盘接口指南
android·开发语言·前端·python·php·lua
无忧.芙桃29 分钟前
现代C++讲解之变量模板,泛型lambda,函数返回类型推导的使用
开发语言·c++·visualstudio
雪碧聊技术32 分钟前
JVM:字节码文件的组成
jvm
庞轩px34 分钟前
致远互联实习复盘:一条SQL替代300次循环查询,组织架构选择器从5秒降到300毫秒
java·sql·mysql·mybatis·实习经历·n+1问题·join联表查询
vooy pktc35 分钟前
Spring Security 官网文档学习
java·学习·spring
钰衡大师39 分钟前
Activiti 7 工作流技术文档
java·数据库·spring boot
格林威1 小时前
工业视觉检测:两大主流异常检测开源框架深度对比(PatchCore vs SPADE)
开发语言·人工智能·深度学习·数码相机·计算机视觉·视觉检测·工业相机
2zcode1 小时前
基于Matlab元胞自动机模拟(CA)静态再结晶过程
开发语言·matlab·静态再结晶
dvjr cloi1 小时前
Spring Framework 中文官方文档
java·后端·spring
研究点啥好呢1 小时前
滴滴Go后端开发工程师面试题精选:10道高频考题+答案解析
java·开发语言·golang