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