ber*_*kiv 3 java scope for-loop
正如标题所示,使用它有什么好处:
int i;
for (i = 0; i < 4; i++){
<do stuff>
}
for (i = 0; i < 7; i++){
<do other stuff>
}
Run Code Online (Sandbox Code Playgroud)
而不是这个:
for (int i = 0; i < 4; i++){
<do stuff>
}
for (int i = 0; i < 7; i++){
<do other stuff>
}
Run Code Online (Sandbox Code Playgroud)
换句话说,没有为每个循环声明另一个变量有什么好处吗?
我认为存储它们需要的内存较少,但它们都会在方法结束时被废弃,所以为什么这很重要?(或GC只会摆脱它们)
两种解决方案几乎肯定会占用完全相同的内存量,并且这里不涉及堆内存(GC无关紧要).
即使在javac第二种情况下,当第二种情况下的局部变量超出范围(在for循环外)时,也可以很容易地确定它,并且用于它的位置可以重用于另一个循环.
在运行时,变量可能会被分配给一个寄存器,并且根据实际代码和JVM实现的许多细节,循环将以其他方式展开或转换,使得几乎不可能理解" "变量的内存使用情况".
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |