根据cpu周期JAVA重构代码

Pra*_*eep -2 java

问题:我只想问2个问题,如果我在java中写下2个代码,那么哪个在cpu周期方面更快?为什么?有人告诉我,第一个选项在cpu周期方面是不正确的,因为检查了2个条件,即if和!

boolean flag = true;

//OPTION ONE
if(!flag) {
  //error
} else {
  //got the answer
}

//OPTION TWO
if(flag) {
  //got the answer
} else {
  //error
}
Run Code Online (Sandbox Code Playgroud)

mik*_*era 7

有没有实际的区别在现代的JVM实现.

编译器会做正确的事情,不用担心.实际上,如果它可以证明标志在编译时总是具有常量值true,那么它将完全消除检查和不可达分支.