`
gxuqyw
  • 浏览: 5566 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论
文章列表
在业余时间,断断续续地写了相近1年的时候,最小的JVM组件终于在今天开发完毕。 一、JVM特点 (一)支持多线程 (二)支持monitor (三)支持异常机制 (四)支持类和实例对象,支持static函数和数据成员 (五)支持垃圾回收 (六)支持标准的java语法生成的class (七)最小类库(后期加入的都不是必须的) java.lang.Object.class java.lang.String.class java.lang.Throwable.class java.lang.Exception.class java.lang.AbstractMethodErr ...
        至此,JVM的开发已接近了尾声。今天设计了自己的Thread类库,支持以任意的java类函数或类实例函数为执行代码段创建子线程。   一、Test8.java(提供子线程的执行代码段) import com.rjos.driver.Text; public class Test8 { /* 以类函数为子线程的执行代码段 */ static public void TestClassThread1() { while(true) { Text.printf ...
2015年2月8日开发进展   一、实现 1.jvm的Ldc2_w、LDC、NewArray、invokevirtual、ifnonnull、arraylength、ireturn、iload_3、Sipush、iinc、ifgt、invokestatic指令; 2.jvm支持String;3.简单的:java/lang/Throwable.class、java/lang/Exception.class、java/lang/RuntimeException.class;   二、发现并修复 1.调用函数的指令时,对参数的解析。 2.jvm的invokespecial指令中,参 ...
          经过了四天的调试,未发现程序有任何问题。今早起来,无意中用javabite查看类的常量池时,发现遇到long和double项后,其后项的索序号+2;为此再次打开jvm规范查看,果然需要+2,对比程序的业务逻辑,我未进行相应处理。至此发现bug的原因所在。             2015年1月23日开发进展: 一、修复bug 1.修复加载器的BUG,存在的BUG是:在从常量池获取常量项时,遇到long或double的项(索引为n)时,其后的项的索引未记为n+2。
2015年1月20日开发日志   一、优化 1.对公共的解析操作进行了封装,提高代码重用率;   二、实现 1.优化类文件加载到内存程序,增加应用程序类及系统类的加载; 2.增加pc的设置程序; 3.实现了jvm的Istore_3、istore、GOTO指令   三、发现但未解决的bug 1.加载器在加载部分类的时候,解析类文件不正确;
2015年1月16日开发进展   一、修复BUG: 1.创建类对象时(调用类的clinit方法时)各帧的顺序不可预知; 二、发现并修复BUG 1.jvm的Putstatic指令的实现中,从栈取值时未检验是取2个slot的值还是1个 三、实现了 JVM的putfield、lconst_1、Astore_1、Iload_1、Astore_2、bipush指令   ps:周末出去玩,周一再更新了。
2015年1月15日开发进展:   一、发现并修复BUG 1.invokespecial指令的实现;   二、优化 1.根据索引获取常量池常量的算法;   三、实现 jvm的aconst_0、aload_0、iconst_1指令   四、发现但未修复BUG 1.如果类有数据类型不是原始数据类型的static成员时,创建类对象时(调用类的clinit方法时)各帧的顺序不可预知。
2015年1月14日开发进展:   优化: 1.进程和线程调度算法。 实现: 1.JVM对函数参数的解析。 2.JVM的invokespecial指令。  
2015年1月13日开发进展: 实现了putstatic、return、iconst_2、iconst_3、new、dup指令.   修复BUG:        解析class文件的field列表时,最后一个field解析不正确。 发现并修复BUG:        类对象和类实例对象获取某个成员变量时的业务逻辑错误。            你可以直接运行附件中的程序,java/lang/Object.class为类库,java/app/Test.class为系统默认调用应用程序(唯一的应用程序),java/app/Test2.class和java/app/Test3.cla ...
2015年1月11日开发进展: 一、实现了类对象、类实例对象、类对象管理器、类实例对象管理器 二、实现了iconst_5指令, putstatic指令未完全实现.   已知BUG:     解析class文件的field列表时,最后一个field解析不正确。            你可以直接运行附件中的程序,java/lang/Object.class为类库,java/app/Test.class为系统默认调用应用程序(唯一的应用程序),java/app/Test2.class和java/app/Test3.class为Test的父类。附件中的截图系统正在执行的是Test的父 ...

000关于RJPOS

     RJPOS       rjpos(running java program 's operater system),既"运行JAVA应用程序的操作系统",它目前还处于开发阶段,由“沃土”(网名,QQ:601577724,email:yee189@189.cn)在windows平台下独立开发,通过windows的api模拟硬件接口。开发工作就是先后实现以下相关功能模块:     V一、进程管理与调度     V二、线程管理与调度     V三、类加载器和类管理器     V四、类对象生成器和类对象管理器     V五、类实例对象生成器和类实例对象管理器(在其之 ...
Global site tag (gtag.js) - Google Analytics