5

我从来没有看过教程或讲座,它显示了一个没有后增量顺序的经典 for 循环。

for (int i=0; i<array.length; i++) {}

如果您使用 POST-increment,变量“i”将被缓存,然后才会递增!但这没有任何意义,因为命令直接结束。

在我看来,这更有意义:

for (int i=0; i<array.length; ++i) {}

如果你直到现在还不明白,我会走得更远(对不起我的英语):

在第一个循环中:

  1. 缓存 i 的实际值。(注意:之间没有移动,所以没有理由这样做)
  2. 增量 i
  3. 前进

在第二个循环中:

  1. 直接增加 i
  2. 前进。

所以第二个循环在没有质量损失的情况下性能更高。还有其他意见吗?

4

1 回答 1

6

在 Java 中,在这个级别上思考是没有意义的。Java 运行时与您在 Java 源代码中真正编写的内容相去甚远,以至于这种推理失去了任何意义。具体来说,JIT 编译器会将您的代码扭曲到机器代码级别的不可理解性。

于 2013-08-23T11:50:33.190 回答