局部变量表

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