![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM源码之路
li1376417539
这个作者很懒,什么都没留下…
展开
-
引子
1 编程语言兼容底层系统的实现方式 通过编译器实现兼容 涉及到系统调用的特定API的程序需要修改 通过中间语言实现兼容 程序被编译后,生成中间语言(ML),中间语言指令由虚拟机负责解释和运行。中间语言的兼容性由虚拟机负责完成。 2 常见汇编命令 数据传送指令:在寄存器与内存,寄存器与输入输出端口之间传送数据。 movl 1,%eax //将自然数1传送到eax寄存器 pop...原创 2019-09-28 15:22:07 · 98 阅读 · 0 评论 -
Java执行引擎工作原理:方法调用
Java执行引擎工作原理:方法调用 方法调用如何实现 函数指针和指针函数 CallStub源码详解 Git链接(有HotSpot源码) 1 方法调用如何实现 计算机核心三大功能:方法调用、取指、运算 1.1 真实机器如何实现方法调用 参数入栈。有几个参数就把几个参数入栈,此时入的是调用者自己的栈 代码指针(eip)入栈。以便物理机器执行完调用函数之后返回继续执行原指令 调用函数的栈基址入...原创 2019-09-28 15:27:18 · 920 阅读 · 1 评论 -
Java字节码实战
Java字节码实战 Java字节码的二进制格式 字节码的魔数与版本 字节码的常量池 字节码的类继承 字节码的字段存储 字节码的方法格式 想要深刻理解JVM执行引擎的机制,就必须对JVM内部的数据结构有深入了解,而要了解JVM内部的数据结构就必须要了解Java字节码。 字节码初探 测试用例: public class Test { public int a = 3; stat...原创 2019-10-01 21:35:32 · 424 阅读 · 0 评论 -
第五章 常量池解析
常量池解析 Java字节码常量池的内存分配链路 oop-klass模型 常量池的解析原理 在字节码文件中,常量池的字节码流所在的块区紧跟在魔数和版本号之后,因此JVM在解析完魔数与版本号后就开始解析常量池。JVM解析Java类字节码文件的接口:ClassFileParser::parseClassFile(),总体步骤如下:解析魔数–>解析版本号–>解析常量池–>解析父类–...原创 2019-10-03 18:50:23 · 804 阅读 · 1 评论 -
第六章 类变量解析
类变量解析 Java类变量解析的原理 计算机基础——偏移量与内存对齐 Java类与字段的对齐与补白 Java字段的继承机制 使用HSDB查看运行时的Java类结构 类变量解析 在ClassFileParser::parseClassFile()函数中,解析完常量池、父类和接口后,接着编调用parse_fields()函数解析类变量信息: // Fields (offsets are fil...原创 2019-10-05 11:33:08 · 328 阅读 · 0 评论