我一直想知道,一般来说,在循环之前声明一个抛弃变量,而不是在循环内部重复,是否会产生任何(性能)差异?Java中的一个(毫无意义的)示例:
a)循环前的声明:
double intermediateResult;
for(int i=0; i < 1000; i++){
intermediateResult = i;
System.out.println(intermediateResult);
}
Run Code Online (Sandbox Code Playgroud)
b)声明(重复)内循环:
for(int i=0; i < 1000; i++){
double intermediateResult = i;
System.out.println(intermediateResult);
}
Run Code Online (Sandbox Code Playgroud)
哪一个更好,一个还是b?
我怀疑重复变量声明(例子b)在理论上会产生更多的开销,但是编译器足够聪明,所以它并不重要.实施例b具有更紧凑的优点,并且将变量的范围限制在其使用的位置.尽管如此,我倾向于根据示例来编码一个.
编辑:我对Java案件特别感兴趣.
这两种声明之间的区别在哪里String s:
1)
public static void main(String[] args) {
String s;
for (int i = 0; i < 1000000; i++) {
s = "String" + i;
System.out.println(s);
}
}
Run Code Online (Sandbox Code Playgroud)
2)
public static void main(String[] args) {
for (int i = 0; i < 1000000; i++) {
String s = "String" + i;
System.out.println(s);
}
}
Run Code Online (Sandbox Code Playgroud)
我的任务经理说第一个不需要CPU和第二个.那么Java以两种不同的方式编译这两个样本?但是怎么样.
谢谢您的帮助!