java中&和&&有什么区别?如何运算?

阳光 2020-12-11 21:19:32 java常见问答 6204

在学习java编程中,有很多新手不知道&和&&有什么区别?为了更好的学习java,接下来,我们就来给大家讲解一下这方面的内容。

&,&&:(与,短路与):一样的地方就是二者执行最后的结果是一样的,但是执行的过程有区别:

对于&:无论&左边是否为false,他都会继续检验右边的boolean值。

对于&&:只要检测到左边Boolean值为false时,就会直接判断结果,不会在检验右边的值(因为"与"有一个false最后结果就是false了)。

所以&&的执行效率更高,所以一般都是使用&&。

|与||之间也是同样的道理,|:无论左边是否为ture,都会检验右边 ,||:则不会。|| 的执行效率会更高。

如何运算?

1)& 表示“按位与",这里的”位“是指二进制位(bit)。

例:十进制数字8 转化为二进制是:1000 ;数字9 转化为二进制是1001 。

则如有以下程序:

public class Test {
    public static void main(String[] args) {
        System.out.println(9 & 8);
    }
}

输出结果应该是:8

原因:1001 & 1000 = 1000 。 计算机中一般1表示真,0表示假。最左边一位1&1=1,最右边一位1&0 = 0。

2) && 表示逻辑”与“ ,即java中的boolean值才可以存在于&&符号的左右两侧。

true && false = false ,true && true = true , 依旧是"一假必假"。

值的注意的是:&& 符号有所谓的“短路原则”,当 A && B 出现时,如果A经判断是假,那么B表达式将不会获得执行或被判断的机会。直接结果就为假。

注:关于十进制与二进制的转换,简单的说每四位可以遵循”8421“原则,1001即8+1=9,1011即8+2+1=11。

现在大家知道&和&&的区别了吧,只要大家会利用它们运算,并且知道它们的含义就可以了。最后大家如果想要了解更多java常见问题,敬请关注奇Q工具网。

推荐阅读:

java中泛型类是什么?类型通配符是什么?

java文件拷贝方式有哪几种?快速排序是什么?

java中如何保证公钥不被篡改?具体怎么做?