Java中的可变范围效率

时间:2013-03-08 00:02:05

标签: java scope

快速的表现/记忆问题:

如果有差异,有什么更好的呢?

int x;
for (int i = 0; i < 10000; i++)
{
 x = i;
 //do something
}

或者

for (int i = 0; i < 10000; i++)
{
 int x = i;
 //do something
}

2 个答案:

答案 0 :(得分:3)

我认为它们在汇编方面都是相同的(有时候只需要执行大量的堆栈推送比局部变量的推送弹出更快)。它只会在第二种情况下减小x的范围,即使它们都产生相同的字节码。

答案 1 :(得分:3)

它完全相同...定义一个变量(原语/引用)只是计算它将存在的位置(作为堆栈指针的偏移量)。这是由编译器完成的。