java中等于用==表示,用于基本类型值比较;引用类型慎用,因==比较内存地址,内容比较应使用equals()或objects.equals()。

在 Java 中,等于用两个等号 == 表示,这是比较运算符,用于判断两个值是否相等,返回 boolean 类型(true 或 false)。
注意:不要和赋值运算符 = 混淆,单个 = 是赋值,不是比较。
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
基本用法(适用于基本数据类型)
int a = 5; int b = 5; System.out.println(a == b); // true char c1 = 'A'; char c2 = 65; // ASCII 码 65 对应 'A' System.out.println(c1 == c2); // true boolean flag1 = true; boolean flag2 = false; System.out.println(flag1 == flag2); // false
-
==可安全用于byte、short、int、long、float、double、char、boolean这些基本类型。 - 比较的是实际的值。
引用类型慎用 ==
String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");
System.out.println(s1 == s2); // true(字符串常量池优化)
System.out.println(s1 == s3); // false(不同对象,内存地址不同)
System.out.println(s1.equals(s3)); // true(内容相等)
- 对于
String、自定义对象等引用类型,==比较的是内存地址(是否为同一对象),不是内容。 - 要比较内容是否相同,应使用
.equals()方法(注意空指针风险,推荐用Objects.equals(a, b))。
常见错误提醒
- ❌
if (x = 5)→ 这是赋值,不是比较,编译可能通过(如x是boolean会报错,但int会直接报错“不兼容类型”),逻辑一定出错。 - ✅ 正确写法:
if (x == 5) - ⚠️ 浮点数慎用
==直接比较(因精度问题),建议用误差范围判断:double a = 0.1 + 0.2; double b = 0.3; System.out.println(Math.abs(a - b)
不复杂但容易忽略。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










