当用于布尔操作数时,
&
和|
成为JLS第15.22.2节中的逻辑运算符。然而,与&&
和||
不同的是,它们不会短路;它们总是评估双方。我有一个愚蠢的问题:既然我们有更有效的短路逻辑运算符(&&
,||
),为什么还保留效率较低的非短路逻辑运算符(&
,|
)?我的意思是,相对于短路逻辑运算符,使用非短路逻辑运算符总是评估两侧的真实用途是什么?换句话说,使用非短路逻辑运算符始终评估双方的使用方法是什么?
&
和|
。与Java一样,它支持短路运算符&&
和||
,但不支持&
和|
。 - T.J. Crowder