优先使用基本类型而不是装箱基本类型
要当心无意识的使用不该使用的装箱基本类型
@Test
public void auto(){
long start1 = System.currentTimeMillis();
Long sum1 =0L;
for (int i = 0; i < Integer.MAX_VALUE; i++) {
sum1 +=1;
}
long end1 = System.currentTimeMillis();
System.out.println("第一次求和的时长为:"+(end1-start1) + "ms");
long start2 = System.currentTimeMillis();
long sum2 =0L;
for (int i = 0; i < Integer.MAX_VALUE; i++) {
sum2 +=1;
}
long end2 = System.currentTimeMillis();
System.out.println("第二次求和的时长为:"+(end2-start2) + "ms");
}
这两个计算结果都是正确的,代码上也基本没有什么差别,但是第一个的计算时长差不多是第二个的100倍。
原因在于sum1的类型为Long,sum2的类型为long。这意味着大约需要构造2^31个多余的Long实例,从而使得sum1计算慢。