&和&&区别

  • &&具有短路功能,而&不具有短路功能。
  • &也可以使用作位运算符,在&操作符两边的表达式不属于 boolean类型时,&表示按位与操作
public class T {
    public static void main(String[] args) {
        int a = 0b0011_1100;
        int b = 0b0000_1101;

        System.out.println(Integer.toBinaryString(a & b));//0000_1100
        System.out.println(Integer.toBinaryString(a | b));//0011_1101
        System.out.println(Integer.toBinaryString(a ^ b));//0011_0001
        System.out.println(Integer.toBinaryString(~b));//1111111111111111111111111111_0010

        int i = 2;
        int j = 3;

        boolean flag = (i<1 && (i++ == 3));//短路
        System.out.println(flag);//false
        System.out.println(i);//2

        flag = (i<1 & (i++ == 3));//不短路
        System.out.println(flag);//false
        System.out.println(i);//3
    }
}

 

posted @ 2022-06-14 20:16  禁止摆烂  阅读(561)  评论(0)    收藏  举报