2.2.2、等于、关系和逻辑运算符

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
等于、关系和逻辑运算符
等于和关系运算符

等于和关系运算符决定了其中一个操作数是大于、小于、等于还是不等于另一个操作数。你可能熟悉这些操作符中的大部分。当判断两个原始类型是否相等时,你一定是用"==“而不是”="。

操作符说明
==等于操作符
!=不等于操作符
>大于操作符
>=大于等于操作符
<小于操作符
<=小于等于操作符

下面的示例展示了比较操作符

public class ComparisionDemo {

    public static void main(String[] args){
        int value1 = 1;
        int value2 = 2;

        if(value1 == value2){
            System.out.println("value1 == value2");
        }

        if(value1 != value2){
            System.out.println("value1 != value2");
        }

        if(value1 > value2){
            System.out.println("value1 > value2");
        }

        if(value1 < value2){
            System.out.println("value1 < value2");
        }

        if(value1 <= value2){
            System.out.println("value1 <= value2");
        }
    }

}

输出

value1 != value2
value1 < value2
value1 <= value2
逻辑操作符

&& 和 || 完成了两个boolean操作数的逻辑与和逻辑或操作。这两个操作符都有短路行为,意味着第二个操作数只有在必要的时候才会执行。

操作符说明
&&逻辑与
||逻辑或

下面的示例演示了逻辑运算符的运用

public class ConditionalDemo1 {
    public static void main(String[] args){
        int value1 = 1;
        int value2 = 2;
        if((value1==1) && (value2==2)){
            System.out.println("value1 is 1 AND value2 is 2");
        }
        if((value1==1) || (value2==1)){
            System.out.println("value1 is 1 OR value2 is 1");
        }
    }
}

另外一个逻辑运算符是?:三目运算符,可以看做是if-then-else语句的简写形式。在接下来的示例中,这个操作符应该理解为“如果someCondition 是真,把value1赋值给result,否则把value2赋值给result”。下面的示例展示了?:三目运算符的使用:

public class ConditionalDemo2 {
    public static void main(String[] args){
        int value1 = 1;
        int value2 = 2;
        int result;
        boolean someCondition = true;
        result = someCondition ? value1 : value2;
        //打印1
        System.out.println(result);
    }
}
类型比较操作符 instanceof

instanceof 操作符比较一个对象是否属于指定类型。你可以用它来测试一个对象是否是类的一个实例,子类的实例,或者实现了特定接口类的实例。
接下来的代码示例 定义了一个父类(Parent)、一个接口(MyInterface)、一个子类(Child)继承自Parent并实现了MyInterface接口。

class Parent{ }

interface MyInterface{}

class Child extends Parent implements MyInterface{}

public class InstanceofDemo {

    public static void main(String[] args){
        Parent obj1 = new Parent();
        Parent obj2 = new Child();

        //print obj1 instanceof Parent : true
        System.out.println("obj1 instanceof Parent : " + (obj1 instanceof Parent));
        // print obj1 instanceof Child : false
        System.out.println("obj1 instanceof Child : " + (obj1 instanceof Child));
        //print obj1 instanceof MyInterface : false
        System.out.println("obj1 instanceof MyInterface : " + (obj1 instanceof MyInterface));

        // print obj2 instanceof Parent : true
        System.out.println("obj2 instanceof Parent : " + (obj2 instanceof Parent));
        // print obj2 instanceof Child : true
        System.out.println("obj2 instanceof Child : " + (obj2 instanceof Child));
        // print obj2 instanceof MyInterface :  true
        System.out.println("obj2 instanceof MyInterface :  " + (obj2 instanceof MyInterface));
    }
}

当使用instanceof操作符时,记住null不是任何类的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值