以下有两段功能相似的代码,一个使用int,另一个使用Integer:
代码段一
|
代码段二
|
public static int sumViaInteger(
Integer from , Integer
to) {
Integer result=0;
for(int i=from;i<=to;i++){
result+=i;
}
return result;
}
|
public static int
sumViaInt(int from , int to) {
int result=0;
for(int i=from;i<=to;i++){
result+=i;
}
return result;
}
|
以下代码测试这两个方法的执行时间:
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
long start = System.nanoTime();
sumViaInteger(1, 100);
long end = System.nanoTime();
System.out.println(i + "
sumViaInteger(1,100)所花时间:"
+ (end - start));
start = System.nanoTime();
sumViaInt(1, 100);
end = System.nanoTime();
System.out.println(i + " sumViaInt(1,100)所花时间:"
+ (end - start));
}
}
以下是程序某次运行的输出结果:
0 sumViaInteger(1,100)所花时间:457051
0 sumViaInt(1,100)所花时间:3499
-------------------
1 sumViaInteger(1,100)所花时间:19948
1 sumViaInt(1,100)所花时间:1400
-------------------
2 sumViaInteger(1,100)所花时间:19598
2 sumViaInt(1,100)所花时间:1400
-------------------
仔细观察以上输出结果,你发现了什么?得出了什么结论?请对出现此运行结果的可能原因进行分析。