1. 研究目的与意义、国内外研究现状(文献综述)
本课题的意义、国内外研究概况、应用前景等(列出主要参考文献)1.java的现状以及广泛应用经过多年的研宄和分析java技术己经得到了广泛的应用和发展,取得了一定的成果获得了实质性的发展,发展前景十分广阔。
目前我国java应用的主要方面:(1)广泛应用于企业发展。
随着我国计算机水平和质量的不断提高,我国己经由传统的计算机模式转变为新型的计算机模式,做到了与时俱进、开拓创新,在实践的基础上创新,在创新的技术上实践,从而扩大企业市场份额,积极的发挥java技术的优势,为企业的发展提供更加广阔的平台,从而实现企业经济效益和社会效益的最大化。
2. 研究的基本内容和问题
1.使用文件仿真内存管理模块;2.垃圾回收系统,回收已经分派的内存;3.类加载系统,可以从程序中加载class;4.与内存相关的数据结构,如java堆,java私有栈;5.算法优化,包括内存使用算法,解释器中的算法;6.执行引擎。
3. 研究的方法与方案
本次课题计划使用基础语言编写,计划能够实现出一个简单的java虚拟机。
类加载子系统负责从文件系统或者网络中加载class信息,加载的类信息存放于一块称为方法的内存空间。
除了类信息外,方法区中可能还会存放运行时常量池信息,包括字符串字面量和数字量;java堆在虚拟机启动的时候建立,这是一块与java应用密切相关的内存区间;java的nio库允许java程序使用直接内存,直接内存是在java堆外的、直接向系统申请的内存区间;垃圾回收系统是java虚拟机的重要组成部分,垃圾回收器可以对方法区、java堆和直接内存进行回收;每一个java虚拟机线程都有一个私有的java栈,一个线程的java栈在线程创建的时候被创建;pc寄存器也是每个线程私有的空间,java虚拟机会为每一个java线程创建pc寄存器;执行引擎是java虚拟机最核心组件之一,它负责执行虚拟机的字节码。
4. 研究创新点
特色或创新之处模块化设计,是指首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。
逐步求精的结果是得到一系列以功能块为单位的算法描述。
以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。
5. 研究计划与进展
1.08-1.15图书馆查阅资料,了解虚拟机运行原理1.16-1.26设计虚拟机模块功能和接口,并进行测试1.27-2.28具体模块实现,代码编辑1.分模块设计;2.搜索class并架构接口;3.解析class文件,设计常量池和属性表;4.构建运行数据区,包括java栈、java堆、变量表等;5.建立指令集,先设置较少指令,后来考虑增加;6.建立各种变量形式,比如数组,字符串,类和对象等;7.对各种方法调用,引用设计实现;8.垃圾回收系统的设计。
3.01-3.20内存算法优化。
