Java虚拟机学习笔记之class文件检验器(2)

动态连接是将符号引用解析为直接引用的过程。当java虚拟机执行字节码时,如果它遇到一个操作码,这个操作码第一次使用一个指向另一个类的符号引用,虚拟机就必须解析这个符号引用。

1)查找被引用的类(如果必要的话就装载它)

2)将符号引用替换成为直接引用,再次遇到相同引用无需解析可直接使用。

当某个引用时非法引用时,for example:这个类不能被装载,或者不存在,但是不包含被引用的字段或者方法-----class文件检验器将抛出一个错误。在第四趟的扫描中,如果某个符号引用匹配不到正确的方法,即扫描失败,java虚拟机将抛出一个NoSuchMethodError。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwjxxg.html