看看这个Java代码:
class PerformanceTest2{
public static void main(String args[]){
Long sum = 0L;
for(int i=0;i<Integer.MAX_VALUE;i++)
sum += i;
System.out.println("Sum = " + sum);
}
}
Run Code Online (Sandbox Code Playgroud)
据观察,此代码需要更长的时间,因为sum是'Long'而不是'long'.所以在每次迭代中会发生什么:
sum = new Long(sum.longValue() + i); (for sum+=i;)
Run Code Online (Sandbox Code Playgroud)
因此,每次都会创建一个新对象.Java不支持C++返回引用的功能,以便我们可以编写(可能):
sum.longValue() += i;
Run Code Online (Sandbox Code Playgroud)
可能不必每次在循环周围创建sum对象?我对吗?
java ×1