3

Javaについて一般的な質問があります。

何が良いですか?

ケース1:

a = method1(7);
b = method2(a);
c = method3(b);

また

c = method3(method2(method1(7)));

ケース2:

String a = method1(1);
String b = method2(2);
String c = method3(3);
String d = a+b+c;

また

String d = method1(1)+method2(2)+method3(3);

速度的には何が良いのだろうかと思っていました...2番目の方法(両方で)はメモリの占有に関してより良いと思いますが、どちらかがもう一方よりも速いのか、それとも実行に同じ時間がかかるのか、いつも疑問に思いました。同じ関数を何度も呼び出すプログラムを作成しているので、ミリ秒ごとにカウントされます。

彼らが競争できる別のカテゴリー(スピードなどを除く)があれば、私にも教えてください!

4

1 に答える 1

4

実行速度に識別可能な違いはありません。中間結果に一時変数を使用するコードの唯一の違いは、デバッガーで中間値を表示できることです。さらに、ターゲット関数の呼び出し後に中間変数の値が使用されない場合、コンパイラーがこれらの変数を最適化して、同一のバイトコードを生成する可能性が高くなります。

于 2012-06-03T19:40:17.057 に答える