局部变量表(local variables)
- 局部变量表也趁之为局部变量数组或本地变量表。
-
定义为一个数字数组,主要用于存储方法参数和定义在方法体内的局部变量
,这些数据类型包括各类基本数据类型、对象引用(reference),以及returnAddress类型。 - 由于局部变量表是建立在线程的栈上,是线程的私有数据,因此
不存在数据安全问题
。 -
局部变量所需的容量大小是编译期确定下来的
,并保存在方法的code属性的maximum local variables数据项中。在方法运行期间是不会改变局部变量表的大小的。 -
方法嵌套调用的次数由栈的大小决定。
一般来说,栈越大,方法嵌套调用次数越多
。对一个函数而言,它的参数和局部变量越多,使得局部变量表膨胀,它的栈帧就越大,以满足方法调用所需要传递的信息增大的需求。进而函数调用就会占用更多的栈空间,导致其嵌套调用次数就会减少。 -
局部变量表中的变量只在当前方法调用中有效。
在方法执行时,虚拟机通过使用局部变量表完成参数值到参数变量表的传递过程。当方法调用结束后,随着方法栈帧的销毁,局部变量表也会随之销毁。