摘要:
引言 方法调用不是方法执行而是确定执行哪个方法。 解析 所有方法调用中的目标方法都是常量池中的一个符号引用,在类加载的解析阶段会将一部分符号引用转化为直接引用(方法入口地址),前提是方法在程序运行之前有明确的调用版本且运行期不可改变。这类方法的调用称为解析。 被invokestatic、invoke 阅读全文
摘要:
引言 执行引擎在执行Java代码时可能会有解释执行(解释器执行)和编译执行(JIT产生本地代码执行)。 运行时栈帧结构 栈帧存储了局部变量表、操作数栈、动态链接、方法返回地址。执行引擎运行的所有字节码指令都只针对虚拟机栈顶的栈帧而言。 局部变量表 局部变量表(Local Variable Table 阅读全文
摘要:
引言 类加载器工作在加载阶段,将二进制字节流(如从Class文件中获取)加载到内存中并生成对应的java.lang.Class对象。 类的唯一标识 类的唯一标识是指同一类(类的全限定名相同)被同一个类加载器加载,判断两个类是否相等除了比较全限定名是否相同还要判断两个类是否被同一个类加载器加载。 输出 阅读全文