论坛首页 Java企业应用论坛

java开发实践总结1

浏览 2335 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-06-24  
代码一
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为基本类型就不会。

总结:避免创建无用的对象
   发表时间:2011-06-27  
总结的不错!不过这是JAVA基础....................
0 请登录后投票
   发表时间:2011-06-27  
这与java的内存模式有关吧,基本类型直接放在栈中,而实例化的Long的对象放在了堆中,在栈中保存这个对象的引用,是这么个情况吗?
0 请登录后投票
   发表时间:2011-06-27  
很经典 这应该是java基本类型与对象实例的效率的经典对比~
0 请登录后投票
   发表时间:2011-06-28  
拆箱运算,再装箱赋值,装箱要新建对象,所以会耗时耗空间。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics