用书本自学JVM时,栈帧组成:局部变量表,操作数栈,动态链接;当时一直不知道动态链接是啥,后面才有解释,看懂了就记录下来了。
java动态链接:动态链接是一个将符号引用解析为直接引用的过程。java虚拟机执行字节码时,遇到一个操作码,操作码第一次使用一个指向另一类的符号引用,则虚拟机就必须解析这个符号引用。解析时需要执行三个基本的任务:
1.查找被引用的类(有必要的话就装载它,一般采用延时装载)。
2.将符号引用替换为直接引用,这样当再次遇到相同的引用时,可以使用这个直接引用,省去再次解析的步骤。
3.当java虚拟机解析一个符号引用时,class文件检查器的第四趟扫描确保了这个引用时合法的。