-2

问题:我只想问 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
}
4

1 回答 1

7

现代 JVM 实现没有实际区别

编译器会做正确的事,不用担心。事实上,如果它能够证明 flag 在编译时始终具有恒定值 true ,它将完全消除检查和无法访问的分支。

于 2013-02-06T14:19:03.780 回答