为什么++ i比i ++快1ms?在记忆的背景中发生了什么。
结果:
i ++:3ms
++ i:2ms
这是我用来测试的方法。
int TERM = Integer.MAX_VALUE;
long startTime = System.currentTimeMillis();
for(int i = 0; i < TERM;)
{
i++;
// ++i;
}
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
答案 0 :(得分:-1)
你不能在java中考虑这个级别,因为JIT会非常敏感地将你的代码包装在机器级别。
如果你编写++ i或i ++,它将被转换为字节代码以完全相同的指令集。
这两个字节都是:
Code:
0: iconst_0
1: istore_1
2: iload_1
3: iload_0
4: if_icmpge 13
7: iinc 1, 1
10: goto 2
13: return