(1)概念:
&是位运算符,表示按位与运算(是比较字节位),&&是逻辑运算符,表示逻辑与(and)
同理可得|是位运算符,表示按位或运算,||是逻辑运算符,表示逻辑或(or)
(2)区别:
&和&&的实际功能一样,|和||的实际功能也一个样,它们的区别就是 & 和 | 的两边表达式(不管左边的对于错)总是能得到执行
注:一个的不会短路,两个的会短路!
短路就是: 例如 a && b ,如果a为false直接不考虑b, 但是 a & b 这种就还去考虑b
举例:
public class Test {
public static void main(String[] args) {
int a=2;
int b=1;
if((a==1)&((++b)==2)){
System.out.println("a1="+a);
System.out.println("b1="+b);
}
System.out.println("a2="+a);
System.out.println("b2="+b);
a=2;
b=1;
if((a==1)&&((++b)==2))
{
System.out.println("a3="+a);
System.out.println("b3="+b);
}
System.out.println("a4="+a);
System.out.println("b4="+b);
}
}
结果为:a2=2
b2=2
a4=2
b4=1
}
结果为:a2=2
b2=2
a4=2
b4=1