文件名称:java8rt.jar源码-mini-jvm:Go语言实现的JVM,实现了部分字节码的解释执行,学习JVM使用
文件大小:69KB
文件格式:ZIP
更新时间:2024-06-24 10:24:50
系统开源
java8 rt.jar源码 Mini-JVM 使用Go实现的Java虚拟机(不完整),解释执行,仅学习JVM使用; Mini-JVM首先会从classpath中加载主类的class文件,然后找到main方法的字节码解释执行;执行过程中如果遇到新的类符号引用,则会通过全限定性名再从classpath中加载新的类文件,以此类推; 控制台输出、多线程功能通过自定义的标准库"mini-lib"中的Printer和MiniThread实现,没有使用JDK的标准库Thread,可以执行compile-minilib.sh编译mini-lib源文件; 当前支持的特性有: int加法 条件判断、for循环 控制台打印 简单对象(POJO)创建 基本类型数组和引用类型的数组创建、读写 字符串常量,即String name = "hello, 世界" main方法中可以读取到命令行参数 对象字段读写、静态字段读写 方法重载、方法重写、接口方法调用、形参全部为int类型的static方法调用 支持虚方法表 native方法调用(本地方法表) 部分继承特性(字段继承、方法继承) 非标准库Thread类的线程
【文件预览】:
mini-jvm-master
----.gitignore(73B)
----go.mod(48B)
----mini-lib()
--------classes()
--------src()
----vm()
--------native_method_table_test.go(1KB)
--------method_area.go(7KB)
--------method_stack.go(795B)
--------native_method_table.go(2KB)
--------bcode()
--------error.go(454B)
--------atype()
--------accflag()
--------op_stack_test.go(319B)
--------native_method_object.go(1KB)
--------op_stack.go(2KB)
--------mini_jvm.go(3KB)
--------mini_jvm_test.go(8KB)
--------native_method_class.go(1KB)
--------native_method_printer.go(891B)
--------go_native_method_thread.go(2KB)
--------class()
--------native_method_system.go(660B)
--------interpreted_execution_engine.go(43KB)
----.travis.yml(77B)
----testcase()
--------classes()
--------src()
----utils()
--------io.go(1013B)
--------convert.go(292B)
--------zip.go(971B)
--------log.go(1KB)
--------zip_test.go(358B)
----main.go(1005B)
----README.md(10KB)
----compile-testcase.sh(82B)
----compile-minilib.sh(115B)