避免创建不必要的对象
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
代码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
相关文章推荐
- Java学习笔记5:避免创建不必要的对象
- 5. 【创建和销毁对象】避免创建不必要的对象
- 第五条:避免创建不必要的对象
- 如何在Android中避免创建不必要的对象
- EffactiveJava-避免创建不必要的对象
- 高效Java05:避免创建不必要的对象
- 避免创建不必要的SPWeb对象
- 避免创建不必要的大对象(把大对象转换为小对象)
- Effective Java (5) - 避免创建不必要的对象
- Effective java1——避免创建不必要的对象
- Effective Java(避免创建不必要的对象、消除过期的引用对象)
- 如何在Android中避免创建不必要的对象
- 避免创建不必要的对象
- Effective Java之避免创建不必要的对象
- 避免创建不必要的对象。
- effective java读书笔记5:避免创建不必要的对象
- Effective Java(避免创建不必要的对象、消除过期的引用对象)
- 如何避免创建不必要的对象
- 创建和销毁对象 - 避免创建不必要的对象
- 第5条:避免创建不必要的对象