逻辑和

& = 按位和

“ &”同时执行两个测试,而“ & &”只在第一个测试也为真时执行第二个测试。这就是所谓的短路,可以认为是一种优化。这在防止 null (NullPointerException)时特别有用。

if( x != null && x.equals("*BINGO*") {
then do something with x...
}

& 是位 AND 运算符,比较每个操作数的位。
比如说,

int a = 4;
int b = 7;
System.out.println(a & b); // prints 4
//meaning in an 32 bit system
// 00000000 00000000 00000000 00000100
// 00000000 00000000 00000000 00000111
// ===================================
// 00000000 00000000 00000000 00000100


& & 是逻辑 AND 运算符,仅比较操作数的布尔值。它接受两个表示布尔值的操作数,并对它们进行延迟计算。

&是按位的。 &&是符合逻辑的。

&对操作的双方进行评估。
&&计算操作的左侧,如果是 true,则继续计算右侧。