JVM栈帧是用来支持虚拟机进行方法调用和方法执行的数据结构。栈帧中储存 着方法的局部变量表,操作数栈,动态连接和方法返回地址等信息,每一个方 法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机栈中从出栈到入 栈的信息。
在编译程序代码的时候,栈帧需要多大的局部变量表,多深的操作数栈已经完 全确定了,并写入方法表的Code属性中,因此一个栈帧需要多少内存,不会 受程序运行期变量数据的影响。
一个线程中的方法调用链可能会很长,很多方法可能同时处于运行状态,对于 执行引擎来说,在活动线程中,只有位于栈顶的栈帧才是有限的。
Was this helpful?
0 / 0