运算符|和||以及&和&&的区别
逻辑运算符: &, |, ^, !
- &(与): 只要有一边为fale, 那么就是false
- |(或): 只要有一边为true, 那么就是true
- ^(异或): 只要是相同的boolean值, 那么就是false, 不相同才是true
逻辑运算符(双与, 双或): && ||
- 解释: 双与和双或 得到的结果 和 单与和单或 是完全一样的
|和||以及&和&&两者的区别
&& 和 & :
&& 一旦判断到左边是false之后, 右边就不参与运算了
&: 不管左边是true还是false, 右边都参与运算
|| 和 |:
|| 一旦判断左边是true之后, 右边就不参与运算了
| 不管左边是true还是false, 右边都参与运算
代码分析:
public class Demo
{
private static int j = 0;
private static boolean methodB(int k)
{
j += k;
return true;
}
public static void methodA(int i)
{
boolean b;
b = i < 10 | methodB (4);
b = i < 10 || methodB (8);
}
public static void main (String args[] )
{
methodA (0);
System.out.println(j);
}
}
运行结果为4,为什么不为4和8呢,因为逻辑或只要左边的结果为true,右边就不参与运算了,所以没有调用到methodB (8)的方法。
总结
面试的时候这个点要小心,但是如果做开发的时候,还是用&&和||运算符比较好,这样可以提高代码的效率,当然前提是程序猿需要细心。