美文网首页
Java之JVM的运行时栈帧

Java之JVM的运行时栈帧

作者: zhglance | 来源:发表于2020-02-04 16:49 被阅读0次

1. JVM栈帧图:

JVM栈帧.jpg

说明:
线程栈是一个以栈帧为单位先进后出栈,如上图,main线程先执行了main()方法,main()方法中调用了test()方法。

1.1 局部变量表:

用于保存方法的参数和方法内部定义的局部变量,最小单位是变量槽(variable slot),每个变量槽可以存放一个基础数据类型(除long和double),对象的引用和返回地址的数据。

1.2 操作数栈:

是一个后进先出栈,主要存放需要操作的任意的java数据类型数据。

1.3 动态链接:

保存指向运行时常量池中该栈帧所属方法的引用,以便支持方法调用过程中的动态链接。

1.4 返回地址:

a.当方法正常结束时,即执行方法返回的字节码指令,有可能会返回值给该方法的调用者,此时的调用者的程序计数器值可以为该方法的返回地址;
b.当方法执行遇到没有捕获的异常时,返回地址有异常处理器来决定。

相关文章

网友评论

      本文标题:Java之JVM的运行时栈帧

      本文链接:https://www.haomeiwen.com/subject/anarxhtx.html