什么时候应该在Java中使用单个逻辑运算符?

时间:2019-01-23 18:35:32

标签: java logical-operators

正确地说:什么时候使用单个&或单个|而不是短路的&&||变体? / p>

我似乎找不到一个更好的方法来评估布尔表达式的两端。

1 个答案:

答案 0 :(得分:0)

正如您所暗示的,您意识到短路操作符&&||与非短路操作符&|之间的区别。但是什么时候差异会变得明显呢?当第二个表达式有副作用或长时间运行会影响性能时。最简单的副作用示例是碰巧返回boolean的方法调用,例如:

if (firstOperation() & secondOperation()) //...

当您需要确保发生副作用时,请不要短路。但是我在实践中并不经常看到它,因为先调用具有副作用的方法再评估条件是很清楚的,例如:

boolean first = firstOperation();
boolean second = secondOperation();

if (first && second) //...

通常,您会看到短路运算符,该运算符在不必要时避免评估第二个操作数。当第二个条件没有副作用时,这将很方便,如果第二个条件涉及高昂的间接费用,这将变得很重要。