public static void main(String[] args){  Long totalSum = 0L;  for (long i =0;i<Integer.MAX_VALUE;i++){totalSum+=i;}  System.out.println(totalSum); } 

解决方案 »

  1.   

    效率问题倒没看出来 他是说你思路有问题还是代码有问题呢? 不一定非得用FOR循环来完成这个吧?
      

  2.   

    应该是这一行,有吧!
    for (long i =0;i<Integer.MAX_VALUE;i++){totalSum+=i;} 不是太明白,楼主意思
      

  3.   

    Long totalSum = 0L; 
    long
      

  4.   

    for (long i =0;i<Integer.MAX_VALUE;i++){totalSum+=i;} 
    这句变为
    int maxValue = Integer.MAX_VALUE;
    for (long i =0;i<maxValue;i++){totalSum+=i;} 
    测试一下看是否有性能影响。
      

  5.   

    把 long 改为 int。因为这里没必要用到 long/LongJava 中 int 特别进行过优优,对于 int 的运算速度远高于 long,甚至比 C++ 中的 int 运算速度快。
      

  6.   

    long i = 0 改为 int i = 0
      

  7.   

     呵呵  有答案了   long 改为int
      

  8.   


    。LZ在看EFFECTIVE JAVA???
      

  9.   

    这个是关于JAVA的自动封装和基本类的问题,EFFECTIVE JAVA介绍,要多使用基本类型,封装类好歹也是类,虽然和基本类型可以一样操作和使用,不过效率上,基本类型会更快
      

  10.   

    for (long i =0;i<Integer.MAX_VALUE;i++){totalSum+=i;}
    把long i=0 改为int i=0 要好些
      

  11.   


    顶这个  还有 int的
      

  12.   

    从大到小遍历,是否更快?
    for (long i =Integer.MAX_VALUE;i>-1;i--){totalSum+=i;} 
      

  13.   

    没试过,随便一说,sorry。
    这样会死循环:
      long totalSum = 0L;        for (int i = 0; i <= Integer.MAX_VALUE; i++) {
                totalSum += i;
            }        System.out.println(totalSum);
      

  14.   

    int s =2147483647;
    s += 1;//s = -2147483648
      

  15.   

    算这个加法,不如用乘法快吧~~~~
    (1+ Integer.MAX_VALUE)* Integer.MAX_VALUE/2
      

  16.   

    用减号要比加号快  i=...;i>=0;i--
      

  17.   

    (1+ Integer.MAX_VALUE)* Integer.MAX_VALUE/2