前言
今天我们来聊聊java中&和&&逻辑运算符的区别与联系。
& 和 && 的联系 ( 共同点 ) **:
&和&&都可以用作逻辑与运算符,但是要看使用时的具体条件来决定。
操作数1&操作数2,操作数1&&操作数2,
表达式1&表达式2,表达式1&&表达式2,
情况1:当上述的操作数是boolean类型变量时,&和&&都可以用作逻辑与运算符。
情况2:当上述的表达式结果是boolean类型变量时,&和&&都可以用作逻辑与运算符。
表示逻辑与(and),当运算符两边的表达式的结果或操作数都为true时,整个运算结果才为true,否则,只要有一方为false,结果都为false。
& 和 && 的区别 ( 不同点 ) :
(1)、&逻辑运算符称为逻辑与运算符,&&逻辑运算符称为短路与运算符,也可叫逻辑与运算符。 对于&:无论任何情况,&两边的操作数或表达式都会参与计算。 对于&&:当&&左边的操作数为false或左边表达式结果为false时,&&右边的操作数或表达式将不参与计算,此时最终结果都为false。
综上所述,如果逻辑与运算的第一个操作数是false或第一个表达式的结果为false时,对于第二个操作数或表达式是否进行运算,对最终的结果没有影响,结果肯定是false。推介平时多使用&&,因为它效率更高些。
(2)、&还可以用作位运算符。当&两边操作数或两边表达式的结果不是boolean类型时,&用于按位与运算符的操作。
|和||的区别和联系与&和&&的区别和联系类似
总结:
联系:在Java中,&和&&都可以当做boolean返回值的条件判断语句,表示与。当等式两边都成立时,才可以返回true,否则返回false。
区别:&&实质上是一种短路判断语句,按照先后顺序逐个判断,当前面的条件不成立时,直接返回false,不用对接下来的条件进行判断。&则是从前往后都运算一遍,只要有不成立的条件,就返回false。相比较而言,在条件判断语句中,&&效率会更高一些。