Java 在下列情况下是否可能发生短路评估

Java 在下列情况下是否可能发生短路评估,java,Java,Java会想,既然状态已经为false,它就不会执行fun方法吗?我测试过,在这两种情况下,fun将被执行。但是,它是跨Java规范的保证吗?double&用于短路操作。使用 public class JavaApplication11 { static boolean fun() { System.out.println("fun"); return true; } /** * @param args the command

Java会想,既然
状态
已经为false,它就不会执行
fun
方法吗?我测试过,在这两种情况下,
fun
将被执行。但是,它是跨Java规范的保证吗?

double
&
用于短路操作。使用

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;
    }
}

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

保证
&&
运算符短路。
操作员保证不会

status = status && fun();