预增量与后增量 - 循环速度

cod*_*leb 5 java increment pre-increment post-increment

我从未看过一个教程或一些讲座,这些讲座显示了一个经典的for-loop,而不是后增量顺序.

for (int i=0; i<array.length; i++) {}
Run Code Online (Sandbox Code Playgroud)

如果使用POST增量,变量"i"将被缓存,然后才会增加!但这没有任何意义,因为命令直接结束.

在我看来,这更有意义:

for (int i=0; i<array.length; ++i) {}
Run Code Online (Sandbox Code Playgroud)

如果你到现在才明白,我会更进一步(为我的英语而烦恼):

在第一个循环中:

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

在第二个循环中:

  1. 直接增加我
  2. 前进.

所以第二个循环的性能更高,没有质量损失.还有其他意见吗?

Mar*_*nik 6

在Java中,没有必要在这个级别进行思考.到目前为止,Java运行时已经远离了您在Java源代码中编写的内容,这种推理失去了任何意义.具体来说,JIT编译器会将您的代码扭曲到机器代码级别的无法理解.