&&与&的差别

 

记录学习工作的中点点滴滴~

 

&&
逻辑与运算(短路)
&
1. 按位与运算;
2. 逻辑与运算。
 
&&在左边的表达式为false后就不执行后续的表达式。
&不管左边表达式的值正确否都会执行后续的表达式。

 

    /**
     * &&在左边的表达式为false后就不执行后续的表达式。 
     * &不管左边表达式的值正确否都会执行后续的表达式。
     */
    @Test
    public void test001() {
        int i = 3;
        boolean flag = false && (++i > 10);

        System.out.println(flag); // false
        System.out.println(i); // 3

        flag = false & (++i > 10);

        System.out.println(flag); // false
        System.out.println(i); // 4
    }

 

按位与运算操作。全1为1。

    /**
     * 按位与运算操作。全1为1。
     */
    @Test
    public void test002() {
        int b = 10;
        System.out.println(Integer.toBinaryString(b)); // 1010
        int c = -2;
        System.out.println(Integer.toBinaryString(c)); // 11111111111111111111111111111110

        int d = b & c;
        System.out.println(Integer.toBinaryString(d)); // 1010
    }

 

posted @ 2020-04-29 20:46  tsing0520  阅读(187)  评论(0编辑  收藏  举报