动态链接原理

动态链接

动态链接原理_第1张图片

动态链接、方法返回地址、附加信息 : 有些地方被称为帧数据区

每一个栈帧内部都包含一个指向运行时常量池中该栈帧所属方法的引用包含这个引用的目的就是为了支持当前方法的代码能够实现动态链接(Dynamic Linking)。比如:invokedynamic指令

在Java源文件被编译到字节码文件中时,所有的变量和方法引用都作为符号引用(symbolic Reference)保存在class文件的常量池里。

比如:描述一个方法调用了另外的其他方法时,就是通过常量池中指向方法的符号引用来表示的,那么动态链接的作用就是为了将这些符号引用转换为调用方法的直接引用。

动态链接原理_第2张图片

为什么需要运行时常量池?

因为在不同的方法,都可能调用常量或者方法,所以只需要存储一份即可,节省了空间

常量池的作用:就是为了提供一些符号和常量,便于指令的识别

你可能感兴趣的:(jvm,java,jvm,GC)