假设我有这个:
if(bool1 && bool2 && bool3) {
...
}
现在。如果 bool1 被评估为 false,Java 是否足够聪明以跳过检查 bool2 和 bool3? java甚至从左到右检查它们吗? 我问这个是因为我正在按执行它们所需的时间对 if 语句中的条件进行“排序”(从左边最便宜的条件开始)。现在我不确定这是否会给我任何性能优势,因为我不知道 Java 如何处理这个问题。
最佳答案
是的,Java(类似于其他主流语言)使用懒惰求值短路,这意味着它求值尽可能少。
这意味着下面的代码是完全安全的:
if(p != null && p.getAge() > 10)
此外,a ||如果
永远不会计算 a
的计算结果为 true
,bb
。
关于java - Java 如何处理单个 IF 语句中的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8572565/