J2ME中有for
,while
和do-while
。哪一项最快?
答案 0 :(得分:8)
除非你有一些通常不可用的信息,否则这些循环在性能方面都是相同的。
循环开销通常不是性能瓶颈。
答案 1 :(得分:7)
最重要的是为问题使用最简单,最清晰的循环。
我建议for
在概念上更长,因为它可用于初始化变量。相反,如果你在循环之前初始化变量,它将是相同的。
如果比较
的字节码public static void main(String... args) {
for (int i = 0; i < 10; i++) {
}
int i = 0;
while (i < 10) {
i++;
}
}
是
public static void main(java.lang.String...);
0: iconst_0
1: istore_1
2: iload_1
3: bipush 10
5: if_icmpge 14
8: iinc 1, 1
11: goto 2
14: iconst_0
15: istore_1
16: iload_1
17: bipush 10
19: if_icmpge 28
22: iinc 1, 1
25: goto 16
28: return
您可以看到字节代码完全相同。
do / while非常相似,但区别在于它不检查第一次迭代。如果你总是想要至少循环一次do / while是正确的循环使用,不是因为它更快,而是因为它更清晰。