java-day3

1、逻辑运算:与/或/非 && || !
2、短路运算

`package operator;

public class Demo03 {

public static void main(String[] args) {
    boolean a = true;
    boolean b = false;

    System.out.println("a && b:"+(a&&b)); //逻辑与
    System.out.println("a || b:"+(a||b)); //逻辑或
    System.out.println("!a && b:"+!(a&&b)); //逻辑非

    //短路运算
    int c = 5;
    boolean d = (c<4)&&(c++<4); //因为c<4结果是false,所以不会执行后面的c++,所以c的值还是5
    System.out.println(d);
    System.out.println(c); //输出5

    //与短路运算的对比
    int m = 5;
    boolean n = (m>4)&&(m++<4); //因为m>4结果是true,所以会执行后面的m++,所以m的值是5+1=6
    System.out.println(n);
    System.out.println(m); //输出6

}

}
`

3、位运算:效率高,是直接和底层打交道
&,|,^,~,>>,<<,>>>

`package operator;

public class Demo04 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101

    A&B: A与B  A与B上下比较,如果两个对应位都为1就是1,否则就是0 结果是0000 1100
    A|B:A或B  A与B上下比较,如果两个对应位都为0就是0,否则就是1 结果是0011 1101
    A^B:抑或  A与B上下比较,如果两个对应位都相同则为0,否则就是1 结果是0011 0001
    ~B:取反  和B完全相反  结果是1111 0010

    面试题:如果快速计算出2*8=16的结果  也就是2*2*2*2
    <<  左移
    >>  右移

    补充二进制:
    0000 0000:0
    0000 0001:1
    0000 0010:2
    0000 0011:3
    0000 0100:4  (2往左移一位变成4)
    0000 1000:8  (4往左移一位变成8)
    0001 0000:16  (8往左移一位变成16)
    结论:左移就相当于吧数字乘2,右移就是除2

     */
    System.out.println(2<<3);
}

}
`

上一篇:Linux下安装Jenkins


下一篇:逻辑运算符和位运算符