1

An example of thee shorthand Java Arithmetic operator is a += 4; for a=a+4;

In The Complete Reference, Java 2, Herbert Schildt mentions "they are implemented more efficiently by the Java run-time system than are their equivalent"

What makes its implementation more efficient than a=a+4;

4

4 に答える 4

6

任意の実行環境で作成者の主張を確認または拒否できるのは、マイクロベンチマークだけです。

最新の JVM では、2 つのバージョンが同じパフォーマンスを示す可能性が高くなります。

PS 本のタイトルの「2」が「Java 2」のようなものである場合は、より最新の本を入手することを強くお勧めします!

于 2013-11-13T15:03:14.060 に答える
4

Forは、ローカル変数を定数でインクリメントするIIC命令をa += 4 javac生成できます。理論的にはIADDよりも効率的です。

IADDスタックから 2 つの値をポップアップして int を追加し、結果をプッシュバックします。IICスタック上では何もしませんが、ローカル変数をインクリメントします。

したがって、 Java CardJVMで見られるような非常に限定されたプリミティブで作業する場合、これは問題になる可能性がありますが、99.9% のシナリオでは問題になりません。Java、JVM、およびその他のほとんどの仮想マシンは、長い道のりを歩んできました。

ところで、本のどの版を使っていますか? Amazonは、2014 年に 9 番目のバージョンを作成すると述べています。

于 2013-11-13T15:10:20.513 に答える
1

単項インクリメント演算子 ( ++) と同様に、どちらのバージョンも (少なくとも Eclipse JDT を使用して) 同じバイトコードが生成されるため、パフォーマンスに関しては同じです。

于 2013-11-13T15:09:43.637 に答える