您的位置:首页 > 其它

避免创建不必要的对象

2012-12-29 15:31 169 查看
试比较代码1和代码2:

代码1:

public static void main(String args[]) {
long start = System.currentTimeMillis();

Long sum = 0L;
for(long i=0;i<Integer.MAX_VALUE;i++) {
sum += i;
}
System.out.println(sum);
long end = System.currentTimeMillis();
System.out.println((end-start)/1000);
}
代码2:
public static void main(String args[]) {
long start = System.currentTimeMillis();

long sum = 0L;
for(long i=0;i<Integer.MAX_VALUE;i++) {
sum += i;
}
System.out.println(sum);
long end = System.currentTimeMillis();
System.out.println((end-start)/1000);
}
上述两个代码的功能是计算1+2+3+...+Integer.MAX_VALUE的值
(本机CPU 2.53GHz)

代码1耗时:
11s

代码2耗时:
28s

因为代码1的sum声明为Long类型,Long是long的包装类,每一次执行sum += i语句,都会创建一个Long对象,所以总共大约创建了2^31次对象。

参考文献: Effective Java (second Edition) -Author: Google Java Architecture CEO Joshua Bloch
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: