java - Java 如何处理单个 IF 语句中的多个条件

标签 java

假设我有这个:

if(bool1 && bool2 && bool3) {
...
}

现在。如果 bool1 被评估为 false,Java 是否足够聪明以跳过检查 bool2 和 bool3? java甚至从左到右检查它们吗? 我问这个是因为我正在按执行它们所需的时间对 if 语句中的条件进行“排序”(从左边最便宜的条件开始)。现在我不确定这是否会给我任何性能优势,因为我不知道 Java 如何处理这个问题。

最佳答案

是的,Java(类似于其他主流语言)使用懒惰求值短路,这意味着它求值尽可能少。

这意味着下面的代码是完全安全的:

if(p != null && p.getAge() > 10)

此外,a ||如果 a 的计算结果为 true,b 永远不会计算 b

关于java - Java 如何处理单个 IF 语句中的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8572565/

相关文章:

java - 从 Java 5 到 Java 7 的 HashMap 有什么变化

java - 有可能陷入僵局吗?

java - Dropwizard :"error processing your request"用于从数据库中检索数据

java - Postgresql 和 GlassFish - 启用自动提交时无法提交

java - 术语 "Instance variable"和 "variables declared in Interfaces"之间的区别

JavaMail STARTTLS 错误?

Java从帖子中解析多维数组

java - 从扫描仪传递值时出现异常

java - CodeModel 修饰符顺序

java - 如何在javafx中使用Splitpane使用SplitPane.Divider类?