1、自动拆箱和装箱会影响性能,如下面的例子:
public class LongTest {
public static void main(String[] args) {
LonglongTest();
longlongTest();
LongLongTest();
longLongTest();
}
public static void LonglongTest(){
long start = System.currentTimeMillis();
Long sum =0L;
for(long i=0;i<Integer.MAX_VALUE;i++){
sum +=1;
}
long end = System.currentTimeMillis();
System.out.println("Longlong耗时:{"+(end-start)+"},结果:"+sum);
}
public static void longlongTest(){
long start = System.currentTimeMillis();
long sum =0L;
for(long i=0;i<Integer.MAX_VALUE;i++){
sum +=1;
}
long end = System.currentTimeMillis();
System.out.println("longlong耗时:{"+(end-start)+"},结果:"+sum);
}
public static void LongLongTest(){
long start = System.currentTimeMillis();
Long sum =0L;
for(Long i=0L;i<Integer.MAX_VALUE;i++){
sum +=1;
}
long end = System.currentTimeMillis();
System.out.println("LongLong耗时:{"+(end-start)+"},结果:"+sum);
}
public static void longLongTest(){
long start = System.currentTimeMillis();
long sum =0L;
for(Long i=0L;i<Integer.MAX_VALUE;i++){
sum +=1;
}
long end = System.currentTimeMillis();
System.out.println("longLong耗时:{"+(end-start)+"},结果:"+sum);
}
}
运行结果:
Longlong耗时:{9112},结果:2147483647
longlong耗时:{763},结果:2147483647 时间最短
LongLong耗时:{13745},结果:2147483647 时间最长
longLong耗时:{6843},结果:2147483647
变量声明为Long,意味程序创建了很多的Long的对象(Integer.MAX_VALUE)