当前位置: 代码迷 >> J2SE >> 怎么使用static
  详细解决方案

怎么使用static

热度:109   发布时间:2016-04-24 01:25:21.0
如何使用static
Java code
/**不报错的写法*/public static void getSummeVonXijMalDifferenzMalwg() throws FileNotFoundException, IOException{        getProdukt();        double[] sum = new double[windowSize];        int j = 0;               while(j < windowSize){            for(int i = 0; i < myArray.length; i++){                 sum[j] = sum[j] + myArray[i][j]; // sum of myArray's rows                 //这里就不报错。            }             j++;        }    }


但是我需要下面这种定义为static全局变量的写法,以便于提高速度。如何修改才能不报错并且还是全局变量???
Java code
/**这个报错程序要如何修改才能成功运行?为了提高速度,我需要这种static全局的写法*/public static double[] sum = new double[windowSize];    .....public static void getSummeVonXijMalDifferenzMalwg() throws FileNotFoundException, IOException{        getProdukt();                int j = 0;               while(j < windowSize){            for(int i = 0; i < myArray.length; i++){                 sum[j] = sum[j] + myArray[i][j]; // sum of myArray's rows                 //上面这行报错            }             j++;        }    }




------解决方案--------------------
当然,非常大可能的问题就是 windowSize 最开始根本就是0,那你的数组大小就是0,肯定什么数据都装不下。

变通的做法可以考虑:
if (windowSize > sum.length) sum = new double[windowSize];


但我认为,即便你用了这种招数,其实速度也不能提升多少。分配数组内存这个动作非常快,基本上也就1ms以内的事情,除非你这个函数被调用的非常频繁,否则没啥性能提升。
  相关解决方案