- 线程私有,每创建一个线程就会创建一个虚拟机栈
栈帧组成
- 局部变量表
- 操作数栈(或表达式)
- 动态链接(或运行时指向常量池的引用)
- 返回值(或异常)
栈帧存放的内容
- 8种基本数据类型(bool byte char short int long double float)
- 对象的引用变量
- 实例方法
局部变量表
- 定义为一个数组,主要用于存储方法参数、定义在方法体内的局部变量(基本数据类型、对象引用、返回值等)
- 基本存储单元为slot,32位以下的类型只能存在一个slot里面,每个slot都会分配一个索引,当一个实例方法被调用的时候,他的每个参数将会按照顺序被复制到局部变量表的每一个slot中;如果当前栈帧是由实例方法或者构造方法创建的,该对象的引用的this将会存放在索引0处。
- slot是可复用的