用go编写jvm
文章平均质量分 84
在golang越来越火的时代,java技术遇到瓶颈的时候,我决定用go编写一个jvm,用于学习go语言以及加深java的理解。
wangkai031
这个作者很懒,什么都没留下…
展开
-
用go编写java虚拟机(三)class文件读取到内存
Bytes是当前读取class文件的字节,Class是需要解析的Class结构体的指针。` 提示:请读者理解go语言的方法和函数的区别,方法有接收者调用的时候需要变量.func()这样子来调用,类比java可以把方法看成是对象方法,函数看成是静态方法//解析魔数//小版本号//大版本号//读取常量池//去除已经读过的字节= 0 {//调用常量池读取方法//访问控制//类索引//父类//接口计数器//先去除读过的字节//判断是否用接口= 0 {//解析接口//字段计数器。原创 2024-01-29 15:28:34 · 626 阅读 · 0 评论 -
用go编写java虚拟机(二)class文件结构创建
如图先定义几个空的文件名称含义class.goclass文件相关的内容属性相关的内容常量相关的内容field.go字段相关的内容method.go方法相关的内容下面根据上篇的class文件的分析定义结构体,在class.go 文件定义Class结构体Magic uint32 // 魔数MinorVersionMin uint16 // 副版本号MinorVersion uint16 //主版本号ConstantPoolCount uint16 //常量池计数器。原创 2024-01-24 18:53:39 · 399 阅读 · 0 评论 -
用go编写java虚拟机(一)class文件
写在前面用go写jvm的目的初识class文件魔数。原创 2024-01-24 13:56:39 · 1491 阅读 · 2 评论