&是位运算符,&&是布尔逻辑运算符而且是短路与操作符。
注意:&就根本不应该作为逻辑运算用的。所谓的可以作为逻辑运算实际上是判断运算的结果是不是等于0,而由于要进行逻辑与操作,必须先要求出两边操作数的值(这个就好像是非短路了)。不过这不是java语言所支持的,混淆了和C的区别。绝对错误的概念。
& 是按二进制的按位与,即 1 & 1 = 1 1 & 0 = 0 3 & 1 → 11(二进制) & 1 = 1
&& 是逻辑与,true & true = true, true & false = false |