猿问

在循环之前声明变量还是在循环中声明变量之间的区别?

在循环之前声明变量还是在循环中声明变量之间的区别?

我一直在想,一般来说,在循环之前声明一个丢弃变量,而不是在循环中反复声明,是否会产生(性能)不同?一个(毫无意义)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);}

哪个更好,ab?

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

编辑:我对Java的情况特别感兴趣。


largeQ
浏览 921回答 3
3回答

慕婉清6462132

你觉得哪个好,a或b?从性能的角度来看,你必须衡量它。(在我看来,如果你能测量出一个差异,编译器就不是很好了)。从维修的角度来看,b更好。在尽可能窄的范围内,在同一位置声明和初始化变量。不要在声明和初始化之间留下漏洞,也不要污染您不需要的名称空间。

蓝山帝景

我分别运行了A和B示例20次,循环了1亿次。(JVM-1.5.0)A:平均执行时间:.074秒B:平均执行时间:.067秒令我惊讶的是,B速度稍快。计算机的速度现在很难判断你是否能准确地测量它。我也会用A方式编码,但我会说这并不重要。
随时随地看视频慕课网APP

相关分类

Java
我要回答