Java如何在单个IF语句中处理多个条件
问题内容:
可以说我有这个:
if(bool1 && bool2 && bool3) {
...
}
现在。如果bool1被评估为false,那么Java是否足够聪明来跳过检查bool2和bool2?Java甚至从左到右检查它们吗?我之所以这样问,是因为我在整理条件时将其内部条件“分类”(从左侧最便宜的条件开始)。现在我不确定这是否会给我带来任何性能上的好处,因为我不知道Java如何处理这个问题。
问题答案:
是的,Java(类似于其他主流语言)使用 惰性评估 短路,这意味着它的评估尽可能少。
这意味着以下代码是完全安全的:
if(p != null && p.getAge() > 10)
另外,a || b
从不评估b
是否a
为true
。