浏览 2335 次
锁定老帖子 主题:java开发实践总结1
精华帖 (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为基本类型就不会。 总结:避免创建无用的对象 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-06-27
总结的不错!不过这是JAVA基础....................
|
|
返回顶楼 | |
发表时间:2011-06-27
这与java的内存模式有关吧,基本类型直接放在栈中,而实例化的Long的对象放在了堆中,在栈中保存这个对象的引用,是这么个情况吗?
|
|
返回顶楼 | |
发表时间:2011-06-27
很经典 这应该是java基本类型与对象实例的效率的经典对比~
|
|
返回顶楼 | |
发表时间:2011-06-28
拆箱运算,再装箱赋值,装箱要新建对象,所以会耗时耗空间。
|
|
返回顶楼 | |