比较运算符包括测试两个值是否相等的相等运算符和测试有序类型(数字和字符)数据之间大小关系的关系运算符。这两种运算符计算的结果都是布尔值,因此一般用于 if 语句、while 和 for 循环,作为分支和循环的判定条件。例如:
if (o != null) ...; // 不等运算符
while(i < a.length) ...; // 小于运算符
Java 提供了下述相等运算符。
等于(==)
不等于(!=)
小于(<)
小于或等于(<=)
大于(>)
大于或等于(>=)
下面一一做说明。
等于(==)
如果 == 运算符的两个操作数相等,计算结果为 true;否则计算结果为 false。如果操作数是基本类型,这个运算符测试两个操作数的值是否一样。如果操作数是引用类型,这个运算符测试两个操作数是否指向同一个对象或数组。尤其要注意,这个运算符不能测试两个字符串是否相等。
如果使用 == 比较两个数字或字符,而且两个操作数的类型不同,在比较之前会把取值范围窄的操作数转换成取值范围宽的操作数类型。例如,比较 short 类型的值和 float类型的值时,在比较之前会先把 short 类型的值转换成 float 类型。对浮点数来说,特殊的负零和普通的正零相等;特殊的 NaN 和任何数,包括 NaN 自己,都不相等。如果想测试浮点数是否为 NaN,要使用 Float.isNan() 或 Double.isNan() 方法。
不等于(!=)
!= 运算符完全是 == 运算符的反运算。如果两个基本类型操作数的值不同,或者两个引用类型操作数指向不同的对象或数组,!= 运算符的计算结果为 true;否则,计算结果为 false。
关系运算符可用于数字和字符,但不能用于布尔值、对象和数组,因为这些类型无序。
小于(<)
如果第一个操作数小于第二个操作数,计算结果为 true。
小于或等于(<=)
如果第一个操作数小于或等于第二个操作数,计算结果为 true。
大于(>)
如果第一个操作数大于第二个操作数,计算结果为 true。
大于或等于(>=)
如果第一个操作数大于或等于第二个操作数,计算结果为 true。