我一直想知道,一般而言,在循环之前声明一个扔掉的变量(而不是在循环内部重复)是否会产生(性能)差异?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进行编码。
从性能角度来看,您必须对其进行评估。(而且我认为,如果您可以衡量差异,那么编译器就不是很好)。
从维护的角度来看,b更好。在尽可能小的范围内,在同一位置声明和初始化变量。不要在声明和初始化之间留有缝隙,也不要污染不需要的名称空间。