我遇到了两个for循环的简单java程序.问题是这些for循环是否需要相同的时间来执行,或者首先执行的速度会比第二个更快.
以下是计划:
public static void main(String[] args) {
Long t1 = System.currentTimeMillis();
for (int i = 999; i > 0; i--) {
System.out.println(i);
}
t1 = System.currentTimeMillis() - t1;
Long t2 = System.currentTimeMillis();
for (int j = 0; j < 999; j++) {
System.out.println(j);
}
t2 = System.currentTimeMillis() - t2;
System.out.println("for loop1 time : " + t1);
System.out.println("for loop2 time : " + t2);
}
Run Code Online (Sandbox Code Playgroud)
执行此操作后,我发现第一个for循环比第二个花费更多时间.但是在交换位置之后,结果与先前写入的循环相同,总是花费比另一个更多的时间.我对结果感到非常惊讶.请有人告诉我上面的程序是如何工作的.
第一个循环将在内存中分配1000个字符串,而第二个循环,无论是否向前工作,都可以使用已经预先分配的对象.
虽然合作System.out.println,但任何分配都应该可以忽略不计.