次のコードを試しました:
public class Test {
public static void main(String[] args) {
int x = 9, y = 9, z = 0;
long startTime = System.currentTimeMillis();
// System.out.println("loop one start time = " + startTime);
for (int i = 0; i < 10000; i++) {
for (int j = 0; j < 10000; j++) {
z = x + y;
}
}
System.out.println("loop one use time = " + (System.currentTimeMillis() - startTime) + ",z = " + z);
startTime = System.currentTimeMillis();
// System.out.println("loop two start time = " + startTime);
for (int i = 0; i < 10000; i++) {
for (int j = 0; j < 10000; j++) {
z = sum(x, y);
}
}
System.out.println("loop two use time = " + (System.currentTimeMillis() - startTime) + ",z = " + z);
}
public static int sum(int x, int y) {
int t;
t = x + y;
return t;
}
}
コンソールへの出力は次のとおりです。
loop one use time = 216,z = 18
loop two use time = 70,z = 18.
2 番目のループは最初のループよりも時間がかからなかったようです! なぜこれが起こるのかわかりません。助けてくれてありがとう。
更新: 2 つのループを交換したので、ループ 1 の時間が短縮されました!!
loop two use time = 219,z = 18
loop one use time = 69,z = 18