java基本数据类型比较直接用==等关系运算符,因存储实际值,属值比较;char可与整数数值比较,因其本质是16位unicode码点。

Java 中基本数据类型(如 int、double、char、boolean 等)的数值比较,直接使用关系运算符(==、!=、、<code>>、、<code>>=)即可,因为它们是原始值,不是对象,不存在引用问题。
基本数据类型的比较是值比较,不是引用比较
基本类型变量存储的是实际的数值,因此用 == 比较的就是两个值是否相等。这和包装类(如 Integer、Double)不同——后者用 == 可能比较的是引用(尤其在自动装箱缓存范围内有陷阱)。
int a = 5; int b = 5; System.out.println(a == b); // truedouble x = 3.14; double y = 3.1415; System.out.println(xchar c1 = 'A'; char c2 = 65; System.out.println(c1 == c2); // true('A' 的 Unicode 值是 65)
注意浮点数比较的精度问题
用 == 或 != 直接比较 float 或 double 可能因计算精度丢失导致意外结果。推荐用差值小于某个极小阈值(epsilon)来判断“近似相等”。
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
- 不推荐:
if (d1 == d2)(尤其是涉及计算后) - 推荐:
if (Math.abs(d1 - d2) - 关系大小比较(
、<code>>等)一般不受精度影响,可直接使用
boolean 类型只能用 == 和 !=,不能用其他关系运算符
boolean 是逻辑类型,只有 true 和 false 两个值,不参与数值大小比较。
- 合法:
boolean flag = true; if (flag == false) { ... }或if (!flag) { ... } - 非法:
if (flag > false)—— 编译报错 - 注意:不要把
=(赋值)误写成==(比较),尤其在if条件中
char 和整数类型可以混合比较
char 在 Java 中本质是 16 位无符号整数(Unicode 码点),因此可与 int、short、byte 等进行数值比较。
char ch = 'B'; if (ch > 'A') { ... } // trueif (ch == 66) { ... } // true,因为 'B' 的 Unicode 值是 66- 比较时会自动提升为 int,所以不会溢出或类型错误
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










