java - 在以下情况下是否可能发生短路评估

标签 java

public class JavaApplication11 {

    static boolean fun() {
        System.out.println("fun");
        return true;
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        boolean status = false;
        status = status & fun();
        status = fun() & status;
    }
}

Java会不会想,既然status已经是false,那么它就不会执行fun方法了?我测试过,在这两种情况下, fun 都会被执行。但是,它是否保证跨 Java 规范?

最佳答案

此处不会发生短路评估,因为您使用的是按位 和运算 (&) 而不是逻辑 和运算 (&&).

关于java - 在以下情况下是否可能发生短路评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10870998/

相关文章:

java - PlPlot 和 Javafx

java - 在多个窗口中使用 JMenus 击键?

java - OpenGL:正交投影

java - Android 中是否有类似于 C/C++ 中的 "int main"的函数,其中包含程序的主循环?

java - Spring STS 3.6.1 和 Gradle 插件

java - 测试Spring onApplicationEvent的简单方法

java - 表单和链接中的 Struts2 命名空间需要前缀吗?

java - 错误: reached end of file while parsing

java - mUserListLayoutManager = new LinearLayoutManager(getApplicationContext(), LinearLayout.VERTICAL, false);不工作

java - 使用 jar 文件的循环复杂度