# JVM_GO **Repository Path**: Xing_zhuyeye/JVM_GO ## Basic Information - **Project Name**: JVM_GO - **Description**: 使用golang实现简易版java虚拟机 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-05-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JVM_GO #### 介绍 使用golang实现简易版java虚拟机 #### 执行原理 1、解析命令行,启动虚拟机 2、加载jdk依赖class bootstrap classpath启动类路径:%JAVA_HOME%/jre/lib extension classpath扩展类路径:%JAVA_HOME%/jre/lib/ext user classpath 用户类路径:自定义 3、解析class文件 1、解析魔数(magic),class文件内容是否以0xCAFEBABE开头 2、解析次版本号(minorVersion),(根据class文件版本号表) 3、解析主版本号(majorVersion),(根据class文件版本号表) 4、解析常量池数(constantPoolCount) 5、解析常量池(constantPool) 6、解析类访问标志(accessFlags),(根据访问标志表) 7、解析类名(thisClass)(常量池索引) 8、解析超类名(superClass)(常量池索引) 9、解析接口索引表数(interfacesCount)(常量池索引) 10、解析接口索引表(interfaces) 11、解析字段表(field_info) 12、解析方法信息(method_info) 13、解析属性信息(attribute_info) 4、