我一直想知道,在一般情况下,将一个临时变量在循环之前声明,相对于在循环内部重复声明,是否会有任何(性能)差异?以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 编码。
编辑:我特别关注Java情况。