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/