什么是虚拟机栈:
存储当前线程运行java方法所需的数据、指令、返回地址
虚拟机栈与java的方法运行息息相关
虚拟机栈的结构:
虚拟机栈是一种先进后出的数据结构
虚拟机栈里面有什么:
虚拟机栈里面有栈帧
一个虚拟机栈里面可能有多个栈帧
每一个栈帧对应一个方法,
1、方法的执行对应栈帧入栈
2、方法的调用完成或者返回对应栈帧出栈
栈帧包含什么:
- 局部变量表 : 用于存局部变量
- 操作数栈 : 存放方法执行的类型操作数的,是一个先进后出的栈结构
- 动态链接
- 完成出口(返回地址) : 程序计数器中的地址或者异常处理器表中的数
栈帧与方法调用图