java中for和foreach速度到底谁更优,速度是和JDK版本有关吗?

这个麻烦的东西,有人说for快有人说foreach快,有人说foreach操作list比for快,或者和jdk版本有关,网上各种说法都有,求解。

for和foreach的用法区别for可以不逐个遍历,比如每隔一个遍历一个,也可以从前向后遍历,从后向前,但是foreach不能从后向前遍历,只能从前向后,并且foreach只能逐个遍历。在foreach中不能向迭代变量赋值。for循环有条件判断,可以限制执行条件。foreach没有。对集合对象的遍历,foreach更常用。
建议如果对集合对象的从头到位读取操作用foreach,这个foreach有优化。
for通常用于已知次数的循环;
foreach通常用于遍历集合;

没有谁更优 主要是,你使用在什么地方! 代码没有最优 的只有更合适的!

for比foreach少打4个字母。

foreach就是一个语法糖,其实就是用for遍历迭代器

[table]
|[flash=200,200][url][img][list]|
|[*][code="java"][quote][/quote][/code]|
|[/list][/img][/url][/flash]|
[/table]

这两个东西和速度无关系,如果你真的想优化你的代码,多多注意下面这些:
缓存、连接池、算法、...

和版本是有关系的,以前的版本没这个快捷方式