for(int i = 100000; i > 0; i–) {}
for(int i = 1; i < 100001; i++) {}
for(int i = 1; i < 100001; i++) {}
解决方案 »
- Tomcat6.0的获取数据源无法对数据库连接。求高手!!!
- 急急急~~~~帮我注释一下java 贪吃蛇
- ejb Caused by: javax.naming.NameNotFoundException: Unable to resolve 'lk'. Resol
- 定义XML Schema使用哪种定义方式比较好?
- 在校生或者IT从业人员怎么看待软考设计师
- java 多文件下载
- 如何自动生成jsp文件?
- 求教一个jboss启动自动加载程序的问题
- 问一个基本问题,JDOM能不能分析一个XML样式的字符串?
- j2ee是什么? 谁给我简单介绍一下,我是菜鸟,可我有分
- struts2?webwork2?到哪个好?
- 新手想问关于学习JAVA选择的STRUTS2书?
如果非说哪个快
我认为应该是for(int i = 1; i < 100001; i++) {}
单从指令来看,由于无寄存器,都是栈操作,局部变量和常量弹栈后的比较再跳转,而且在虚拟机内部--和++都是inc的,指令复杂度貌似是一样的吧。
但是本人实验了下jdk1.5 win32
得到结果是,若上届(或者下界)较小 比如取楼主所讲或取10000,那么用--明显比++快 ,约十倍左右,倘若边界较大时这一差距会越来越小。当然实验的循环体是简单的浮点加,代码就不贴了。
期待高人解释
我开始猜了一个是--快
但是我做测试结果也是--快
所以给分撒
package org.lrb;import java.util.Date;public class Ces { public static void main(String[] args) { for(int i = 100000; i > 0; i--) {
Date haha=new Date();
if(i==1){
System.out.println(haha);
break;
}
}
/*for(int i = 1; i < 100001; i++) {
Date haha=new Date();
System.out.println(haha);
if(i==100000){
System.out.println(haha);
break;
}
} */
}}
java也可以类似方式分析。