/*
*不报错的写法
*/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全局变量的写法,以便于提高速度。如何修改才能不报错并且还是全局变量???/*
*这个报错程序要如何修改才能成功运行?为了提高速度,我需要这种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++;
}
}
public static void getSummeVonXijMalDifferenzMalwg() throws FileNotFoundException, IOException{
getProdukt();
int j = 0;
sum = new double[windowSize];
//这行添加到这里就不报错了,
//不过速度和上面那个局部变量的写法一样啊 while(j < windowSize){
for(int i = 0; i < myArray.length; i++){
sum[j] = sum[j] + myArray[i][j]; // sum of myArray's rows
//System.out.println(" sum[" + j + "] = " + sum[j] + ", ");
}
j++;
}
}
if (windowSize > sum.length) sum = new double[windowSize];
但我认为,即便你用了这种招数,其实速度也不能提升多少。分配数组内存这个动作非常快,基本上也就1ms以内的事情,除非你这个函数被调用的非常频繁,否则没啥性能提升。