3.7.5 比较运算符

3.7.5 比较运算符

比较运算符用于判断两个变量或常量的大小,比较运算的结果是一个布尔值(truefalse)。Java支持的比较运算符如下。

比较运算符 描述
> 大于,只支持左右两边操作数是数值类型。如果前面变量的值大于后面变量的值,则返回true
>= 大于等于,只支持左右两边操作数是数值类型。如果前面变量的值大于等于后面变量的值,则返回true
< 小于,只支持左右两边操作数是数值类型。如果前面变量的值小于后面变量的值,则返回true
<= 小于等于,只支持左右两边操作数是数值类型。如果前面变量的值小于等于后面变量的值,则返回true
== 等于,可用于比较基本类型,也可以用于比较引用类型
!= 不等于,如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值不相等,也都将返回true。如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回true

等于运算符

对于等于运算符,

  • 如果进行比较的两个操作数都是数值类型,即使它们的数据类型不相同,只要它们的值相等,也都将返回true
    • 例如97=='a'返回true5.0==5也返回true

-Java也支持两个boolean类型的值进行比较,例如,true==false将返回false

  • 如果两个操作数都是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,而且这两个引用必须指向同一个对象才会返回true

不能使用==比较的情况

  • 基本类型的变量、值不能和引用类型的变量、值使用==进行比较;
  • boolean类型的变量、值不能与其他任意类型的变量、值使用==进行比较;
  • 如果两个引用类型之间没有父子继承关系,那么它们的变量也不能使用==进行比较

程序示例 比较运算符的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class ComparableOperatorTest {
public static void main(String[] args) {
System.out.println("5是否大于 4.0:" + (5 > 4.0)); // 输出true
System.out.println("5和5.0是否相等:" + (5 == 5.0)); // 输出true
System.out.println("97和'a'是否相等:" + (97 == 'a')); // 输出true
System.out.println("true和false是否相等:" + (true == false)); // 输出false

// 创建2个ComparableOperatorTest对象,分别赋给t1和t2两个引用
ComparableOperatorTest t1 = new ComparableOperatorTest();
ComparableOperatorTest t2 = new ComparableOperatorTest();
// t1和t2是同一个类的两个实例的引用,所以可以比较,
// 但t1和t2引用不同的对象,所以返回false
System.out.println("t1是否等于t2:" + (t1 == t2));
// 直接将t1的值赋给t3,即让t3指向t1指向的对象
ComparableOperatorTest t3 = t1;
// t1和t3指向同一个对象,所以返回true
System.out.println("t1是否等于t3:" + (t1 == t3));
}
}