小编ami*_*lan的帖子

那是'Long'的工作方式(用Java编写)吗?

看看这个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
推荐指数
1
解决办法
506
查看次数

标签 统计

java ×1