Java基本数据类型比较直接用关系运算符;字符可按Unicode值比较,如'a'>'A'为true;'0'==48为true;布尔变量判真勿用==true,应写if(flag)。

Java 基本数据类型(如 int、long、float、double、char、byte、short、boolean)的数值比较,直接使用关系运算符即可,因为它们存储的是实际值,不是引用。
用 ==、!=、>、=、
这些运算符对所有数值型基本类型(除 boolean 外)都适用,结果是 boolean 类型:
-
a == b:判断数值是否相等(注意:boolean 只能用 == 或 != 判断真假,不能用 >、<) -
a > b、a 等:适用于所有数值类型,包括 <strong>char</strong>(按 Unicode 值比较) - 不同数值类型间可混合比较(如
int a = 5; double b = 5.0;,a == b返回 true),Java 会自动进行宽化转换
浮点数比较要特别注意精度问题
直接用 == 比较 float 或 double 可能出错(例如 0.1 + 0.2 != 0.3):
- 推荐用
Float.compare(f1, f2)或Double.compare(d1, d2),返回 -1 / 0 / 1,安全可靠 - 若需判断“近似相等”,可自定义误差范围(epsilon):
Math.abs(d1 - d2) - 高精度业务场景(如金融计算)建议改用 BigDecimal,并用
compareTo()方法
char 和整数类型可以互相比较
char 本质是无符号 16 位整数,因此能直接与 int 等比较:
立即学习“Java免费学习笔记(深入)”;
-
'a' > 'A'→ true(因为 'a' 的 Unicode 值是 97,'A' 是 65) -
'0' == 48→ true - 可用于判断字符范围,比如
ch >= '0' && ch 判断是否为数字字符
boolean 类型只能用 == 和 !=
boolean 不参与大小比较,没有 “大于”“小于” 概念:
-
flag1 == flag2、flag != true是合法写法 -
flag1 > flag2编译不通过 - 不要用
== true冗余写法,直接写if (flag)更清晰


















