如果(codition && false)语句,JVM如何运行?

ZeD*_*ino 2 java performance jvm

目前我正在开发一个具有内存密集检查过程的程序.在某些时候,代码看起来像这样.

if(isvalid() && false) //this false is acctually another method which will at this given 
                       //point always return false
{
    //rest ommited
}
Run Code Online (Sandbox Code Playgroud)

JVM是否总是检查第一个方法(isValid()),因为x && false是假的;

我不确定,因为调试调试器时每次迭代都跳转到isValid()方法.

Hen*_*nry 8

它会一直检查isValid().该方法的目的&&是评估左侧部分,并且只有在true看右侧部分时才进行评估.

  • 以下是参考:http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.23 (3认同)