&和| 除了可以用于位运算,还和&&和||一样,可以用于逻辑运算,以||为例,介绍它们的区别:
public class Test {
public static void main(String[] args) {
int a = 1;
boolean b = true;
if (b || ((a++) > 0)) {
System.out.println("using &&, a = " + a);
}
a = 1;
if (b | ((a++) > 0)) {
System.out.println("using &, a = " + a);
}
}
}
运行结果:
using &&, a = 1
using &, a = 2
可以看出,||进行了短路运算,而对于|,左右的运算都一定会被执行。