哪个for循环更快?为什么? for(i = 0; i < 100000; i++){}for(i = 100000; i > 0; i--){}哪个for循环更快?为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for(i = 0; i < 100000; i++){}不知道为什么,还有这样的循环做什么的?一般承受不了吧 如果两个for都循环完 应该是一样的吧! 这两种方式运算都一样的不过现在JDK1.5以上版本的话都习惯用增强的For循环语法规则:for (Type element : Expression) {…} for(i = 100000; i > 0; i--){}这个更快一些 原理不清楚 不同的jdk实现有不同的结果如果某个jdk实现可以重用局部变量区的j,而不是每次都重新分配一个j,那么效率应该和另外一种差不多http://topic.csdn.net/u/20101112/15/4548c7ba-56bf-4b88-841e-47a8491be47f.html 看7楼 for(i = 100000; i > 0; i--){};理论上这个快;这个问题还是很值得研究的,这个和计算机cpu的累加器有关,牵扯到位运算,1,0。等很多问题,只有高手能说的清,上面很多人回答不值得讨论 证明他们计算机理论很差 java虚拟机中可以重用不同作用域的变量且变量在方法执行前都已经分配好了另外,我也可以实现一个jvm,让你觉得快的循环执行的很慢,所以,隔了一层jvm,什么都不好说 我感觉是第二种快,但是不知道java虚拟机是怎么做的比较,如果是跟0做比较的话也许可以优化到只比较符号位,而和10000比较明显不行 1.少数据量中 两个循环是没有区别的。2.百万及以上数据量中for(i = 1000000; i > 0; i--){}效率高。 谁告诉你foreach 快的?遍历一个List的情况下 用索引遍历 比foreach快很多的。。 用for循环,i--是比++快的,说一样的快瞎扯蛋,自己写个代码就知道了 应该是第二种快吧。从汇编的角度来说,你每次都必须比较 i < 10000的话。相当于两部第一步用减,即:sub i, 10000;然后再test i;之后再进行跳转。但是 i > 0的话,减法那一步就可以省略,直接test i就可以了。我觉得就这点儿细微的区别。 不过按照cpu的构造来说,在cpu中只设计了加法器,cpu对于加法的运算应该会快点(减法首先要转换成加法,进而再运算)。所以这样说加法应该会快点啦! http://hi.baidu.com/freish/blog/item/b793042433594a3fd40742bf.html JSP调用外部js跟css hibernate中怎么才能让它不自动生成主键谁知道 数据结构对java程序员的重要性 java如何读取execl文件再生成xml文件,急!在线等。。。 一个spring注入的问题,快疯了~~ 请叫一个规则引擎调用的问题 spring + hibernate + struts 多数据问题,实在搞不通!请指教 apache2跟tomcat5.5整合出现的问题 请大家推荐一本或几本structs的书~! 兄弟们说说你们j2ee的开发平台 spring:如何处理多个切点 如何批量更改数据库字段值?
不知道为什么,还有这样的循环做什么的?一般承受不了吧
都习惯用增强的For循环
语法规则:for (Type element : Expression) {…}
这个更快一些 原理不清楚
这个问题还是很值得研究的,这个和计算机cpu的累加器有关,牵扯到位运算,1,0。等很多问题,只有高手能说的清,上面很多人回答不值得讨论 证明他们计算机理论很差
两个循环是没有区别的。2.百万及以上数据量中
for(i = 1000000; i > 0; i--){}效率高。
遍历一个List的情况下 用索引遍历 比foreach快很多的。。
第一步用减,即:sub i, 10000;然后再test i;之后再进行跳转。但是 i > 0的话,减法那一步就可以省略,直接test i就可以了。我觉得就这点儿细微的区别。