jvm中的局部变量表中的Slot中的作用是什么?
问题描述:
原文地址:http://www.tuicool.com/articles/URZrMnb
局部变量表中的Slot是可重用的,方法体中定义的变量,其作用域并不一定会覆盖整个方法,如果当前字节码PC计算器的值已经超出了某个变量的作用域,那么这个变量对应的Slot就可以交给其它变量使用。
求大神解释下,上面的这句话,最好举个实例。
答
PC计算器,说的是PC计数器,也就是指令指针
这里的意思是,Java允许定义块级变量,这个变量在块里有效而不是作用在整个方法上。比如
void foo()
{
...
{
int x;
...
}
//这里x就无效了,虽然还没有退出函数
...
}
比如我们可以在循环里定义变量
for (...)
{
int x = ...
}
//这里x超出作用域。