文章 2021-12-13 来自:开发者社区

记一次 JVM 源码分析(4.解释器与方法执行)(下)

Get/Set Staticstatic field 则省略入栈 Instance 的过程InstanceOf只是遍历所有父类和接口比较u8 instance_of(JClass *clazz, Instance *ins, Runtime *runtime) { JClass *ins_of_class = ins->mb.clazz; while (ins_of_cla...

文章 2021-12-13 来自:开发者社区

记一次 JVM 源码分析(4.解释器与方法执行)(中)

PC 指针PC 指针指向当前方法中运行的 Code 行号主要服务于一些非顺序跳转指令:条件语句的分支跳转循环语句的跳转异常分支的跳转debug 行号控制行号表行号表记录了行号和代码 PC 指针的对应关系主要服务于:异常抛出代码的定位debug 单步调试的定位//行号 typedef struct _line_number { u16 start_pc; u16 line_numb...

文章 2021-12-13 来自:开发者社区

记一次 JVM 源码分析(4.解释器与方法执行)(上)

简介miniJVM 作为一个 mini 的 Java VM,实现了 Switch 解释器,并不支持主流 JVM 的 JIT 或者更为复杂的 AOT。但这样对于我们了解字节码的执行已经足够了。字节码指令基于堆栈字节码指令类似于汇编指令,但是不同的是:一行汇编代码的格式一般都是 – opcode 操作数1 操作数2然而字节码指令格式是 opcode + 栈字节码的所有操作数都存在运行栈中,又叫操作数....

记一次 JVM 源码分析(4.解释器与方法执行)(上)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注