读书人

java开发实践小结1

发布时间: 2012-10-29 10:03:53 作者: rapoo

java开发实践总结1
代码一
public static void main(String[] args) {
// TODO Auto-generated method stub
Long sum = 0L;//区别
long beginTime = System.currentTimeMillis();
for(long i=0; i<Integer.MAX_VALUE; i++)
{
sum += i;
}
long endTime = System.currentTimeMillis();
System.out.println(sum);
System.out.println("用时:" + (endTime - beginTime));
}

运行结果:
2305843005992468481
用时:63516

代码二
public static void main(String[] args) {
// TODO Auto-generated method stub
long sum = 0L;//区别
long beginTime = System.currentTimeMillis();
for(long i=0; i<Integer.MAX_VALUE; i++)
{
sum += i;
}
long endTime = System.currentTimeMillis();
System.out.println(sum);
System.out.println("用时:" + (endTime - beginTime));
}
运行结果:
2305843005992468481
用时:10594


两段代码除了sum的定义类型不一样,其他是一样的,但是效率上差很多,原因是sum类型为Long是包装类,每次循环就会创建新的实例,而sum为基本类型就不会。

总结:避免创建无用的对象 1 楼 willse 2011-06-27 总结的不错!不过这是JAVA基础.................... 2 楼 wkcgy 2011-06-27 这与java的内存模式有关吧,基本类型直接放在栈中,而实例化的Long的对象放在了堆中,在栈中保存这个对象的引用,是这么个情况吗? 3 楼 hong879113 2011-06-27 很经典 这应该是java基本类型与对象实例的效率的经典对比~ 4 楼 kingkan 2011-06-28 拆箱运算,再装箱赋值,装箱要新建对象,所以会耗时耗空间。

读书人网 >编程

热点推荐