JVM的虚拟机运行时数据区中,虚拟机栈的栈帧中含动态链接,什么是动态连接?

每一个栈帧都包含指向运行时常量池中该栈帧所属方法的引用,持有这个引用是为了支持方法调用过程中的动态连接。

在class文件格式的常量池中存有大量符号引用(1.类的全限定名,2.字段名和属性,3.方法名和属性),字节码的方法调用指令就是以常量池中指向方法的符号引用为参数。这些符号引用一部分会在连接的解析阶段转为直接引用(向目标的指针、相对偏移量或者是一个能够直接定位到目标的句柄),这种转化称为静态解析。还有一部分引用会在运行期间转化为直接引用,这部分称为动态连接。

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐