Java 中 == 用于比较对象引用是否相同,而 equals() 用于比较对象内容。== 进行引用比较,equals() 进行值比较,通常需要重写以定义比较规则,适用于比较对象内容而非引用。

Java 中 == 和 equals() 的区别
== 和 equals() 是 Java 中两个用于比较对象是否相等的运算符和方法。它们的区别主要在于比较类型和比较标准。
1. 比较类型
- ==:比较对象的引用是否指向同一块内存地址。
- equals():用于比较对象的属性,判断其是否具有相同的值。
2. 比较标准
立即学习“Java免费学习笔记(深入)”;
专业级别的大型网站建站产品,JAVA技术的CMS管理系统,ospod提供上百套专业模板供您选择,包括审批工作流,流量统计和流行网络应用,是公司企业建设专业网站的首选产品,也使用于专业建站人士完成复杂网站项目。管理地址cmsadmin登陆用户名:ospod 密码:ospod1234
- ==:引用比较,对于基本数据类型比较值,对于对象比较引用。
- equals():值比较,根据对象的内容进行比较,通常需要重写该方法以定义自定义的比较规则。
具体区别示例:
int a = 10;
int b = 10;
String s1 = new String("Hello");
String s2 = new String("Hello");
// 基本数据类型
System.out.println(a == b); // true
// 引用类型
System.out.println(s1 == s2); // false
System.out.println(s1.equals(s2)); // true何时使用 == 和 equals()
- 当确定两个对象是否引用同一块内存地址时,使用 ==。
- 当需要比较对象的内容(属性)时,使用 equals()。
需要注意:
- equals() 方法可以被重写,因此对于自定义类,equals() 的比较规则可能与默认行为不同。
- == 对于基本数据类型和不可变对象(例如 String)是安全的。但是,对于可变对象(例如 ArrayList),== 可能会导致意外结果。










