一尘不染

Java在循环之前或循环中声明变量之间的区别?

java

我一直想知道,一般而言,在循环之前声明一个扔掉的变量(而不是在循环内部重复)是否会产生(性能)差异?Java中的一个例子(毫无意义):

a)循环前声明:

double intermediateResult;
for(int i=0; i < 1000; i++){
    intermediateResult = i;
    System.out.println(intermediateResult);
}

b)循环内的声明(反复):

for(int i=0; i < 1000; i++){
    double intermediateResult = i;
    System.out.println(intermediateResult);
}

a或b哪个更好?

我怀疑重复变量声明(示例b)在理论上会产生更多开销,但是编译器足够聪明,因此无关紧要。示例b的优点是更紧凑,并将变量的范围限制在使用它的地方。尽管如此,我还是倾向于根据示例a进行编码。


阅读 593

收藏
2020-02-27

共1个答案

一尘不染

a或b哪个更好?

从性能角度来看,您必须对其进行评估。(而且我认为,如果您可以衡量差异,那么编译器就不是很好)。

从维护的角度来看,b更好。在尽可能小的范围内,在同一位置声明和初始化变量。不要在声明和初始化之间留有缝隙,也不要污染不需要的名称空间。

2020-02-27