【发布时间】:2019-01-31 08:57:52
【问题描述】:
我想知道在做这两个操作时是否存在复杂性和时间差异:
1)
int sum = 0;
for (int i = 0; i < 1000000; i++) {
sum = sum + i;
}
2)
int sum = 0;
for (int i = 0; i < 1000000; i++) {
sum += i;
}
或者也许将问题想象成更大的数字/数据,这只是一个例子。
【问题讨论】:
-
差别很小,你真的不应该为此烦恼。我认为java甚至可以将
sum += i编译成sum = sum + i -
可能两者都会编译成相同的字节码。
-
这在 Java 中很难验证(在 C 中你可以编译代码并检查汇编程序)。我猜想会产生相同的字节码:实际上是
++sum,这一直是驴多年的本机机器代码指令。 -
@Bathsheba 您也可以使用
javap签入Java。 -
事实上它们编译成相同的字节码。
标签: java performance time