如果使用
||和
&&形式,而不是这些运算符的
|和
&形式,则Java不会费心地单独评估右手操作数。
多数情况下,是否要缩短评估是一个问题。
说明短路好处的一个好方法是考虑以下示例。
Boolean b = true;if(b || foo.timeConsumingCall()){ //we entered without calling timeConsumingCall()}正如Jeremy和Peter提到的,短路的另一个好处是空引用检查:
if(string != null && string.isEmpty()){ //we check for string being null before calling isEmpty()}


