-2

質問:2つの質問をしたいのですが、Javaで以下の2つのコードを記述した場合、CPUサイクルの点でどちらが速いのですか?その理由は何ですか?誰かが私に、最初のオプションはCPUサイクルの観点から正しくないと言いました。これは、2つの条件がチェックされているためです。

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実装には実際的な違いはありません。

コンパイラは正しいことをします、それについて心配しないでください。実際、コンパイル時にフラグが常にtrueの定数値を持っていることを証明できれば、チェックと到達不能な分岐を完全に排除できます。

于 2013-02-06T14:19:03.780 に答える