摘要:
4.7方法返回地址 存放调用该方法的pc寄存器的值。 一个方法的结束有两种方式: 正常执行完成 出现未处理的异常,非正常退出。 无论通过哪种方式退出,在方法退出后都返回到该方法被调用的位置。**方法正常退出时,调用者的pc计数器的值作为返回地址,即调用该方法的指令的下一条指令的地址。**而通过异常退 阅读全文
posted @ 2021-10-08 22:33
Lz_蚂蚱
阅读(123)
评论(0)
推荐(0)
摘要:
4.6方法的调用 静态链接与动态链接 在JVM中,将符号引用转换为调用方法的直接引用与方法的绑定机制相关。 静态链接: 当一个字节码文件被装载进JVM内部时,如果被调用的目标方法在编译期可知,且运行期保持不变时。这种情况下将调用方法的符号引用转换为直接引用的过程称之为静态链接。 动态链接: 如果被调 阅读全文
posted @ 2021-10-08 22:32
Lz_蚂蚱
阅读(70)
评论(0)
推荐(0)
摘要:
4.5动态链接 每一个栈帧内部都包含一个指向运行时常量池中该栈帧所属方法的引用。包含这个引用的目的就是为了支持当前方法的代码能够实现动态链接(Dynamic Linking)。比如:invokedynamic指令。 在Java源文件被编译到字节码文件中时,所有的变量和方法引用都作为符号引用(Symb 阅读全文
posted @ 2021-10-08 22:31
Lz_蚂蚱
阅读(65)
评论(0)
推荐(0)
摘要:
4.4操作数栈 每一个独立的栈帧中除了包含局部变量表之外,还包含一个后进先出(Last-In-First-Out)的操作数栈,也可以称之为表达式栈(Expression Stack)。 操作数栈,在方法执行过程中,根据字节码指令,往栈中写入数据或提取数据,即入栈(push)/出栈(pop)。 某些字 阅读全文
posted @ 2021-10-08 22:30
Lz_蚂蚱
阅读(192)
评论(0)
推荐(0)
摘要:
4.3局部变量表 局部变量表也称为局部变量数组或本地变量表 定义为一个数字数组,主要用于存储方法参数和定义在方法体内的局部变量,这些数据类型包括各类基本数据类型、对象引用(reference),以及returnAddress类型。 由于局部变量表是建立在线程的栈上,是线程的私有数据,因此不存在数据安 阅读全文
posted @ 2021-10-08 22:28
Lz_蚂蚱
阅读(378)
评论(0)
推荐(1)