[发明专利]一种可进行高效对象管理的方法及装置有效
| 申请号: | 201410174222.5 | 申请日: | 2014-04-28 |
| 公开(公告)号: | CN103955395B | 公开(公告)日: | 2017-02-22 |
| 发明(设计)人: | 陆舟;于华章 | 申请(专利权)人: | 飞天诚信科技股份有限公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 进行 高效 对象 管理 方法 装置 | ||
技术领域
本发明涉及java卡技术领域,尤其涉及一种可进行高效对象管理的方法及装置。
背景技术
java卡中使用对象来保存一些数据,对象包括对象头和数据域,对象头和数据域可以分开存储,也可以连续存储。永久性对象的对象头和数据域顺序排列的存储在EEPROM中;临时对象的对象头和数据域是分开存储的,其中对象头存储在EEPROM中,而数据域存储在RAM中。永久性对象和临时对象的对象头在EEPROM中按创建的先后顺序排列。java卡运行时需要创建新对象,然后对这些对象进行管理。
目前,java卡虚拟机中基于对象表的对象管理方法中,java卡虚拟机中包括子对象表和主对象表,其中子对象表的表项中存储对象的偏移地址,主对象表的表项中存储子对象表的偏移地址,在对对象进行操作时,首先根据对象的主对象表索引值在主对象表中查找对应的子对象表的偏移地址,再根据对象的子对象表索引值在子对象表中查找对象的偏移地址,根据查找到的对象的偏移地址计算对象的绝对地址,之后再对象进行操作;在垃圾回收过程中,也需要根据被回收对象的主对象表索引值在主对象表中查找对应的子对象表的偏移地址,再根据被回收对象的子对象表索引值在子对象表中查找被回收对象的偏移地址,将查找到的偏移地址清空。因此,java卡虚拟机中基于对象表的对象管理方法中,java卡虚拟机需要进行两次查表操作,操作流程复杂,效率低,耗时多。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种可进行高效对象管理的方法及装置,在对对象进行操作时不需查找子对象表和主对象表,简化了java卡虚拟机的操作流程,提高java卡虚拟机工作效率。
本发明提供的一种可进行高效对象管理的方法,包括:
步骤S1:java卡虚拟机接收来自当前应用程序的指令,判断所述指令的类型,若是创建对象指令则执行步骤S2,若是修改对象指令则执行步骤S5;
步骤S2:所述java卡虚拟机根据所述创建对象指令获取与所述当前应用程序对应的应用实例的偏移地址,将所述偏移地址上的应用实例作为当前应用实例,根据所述创建对象指令获取对象大小、对象类型和对象地址位置;
步骤S3:所述java卡虚拟机从系统信息中获取对象堆的剩余空间的起始偏移地址;
步骤S4:所述java卡虚拟机将所述对象堆的剩余空间的起始偏移地址作为创建的对象的偏移地址,按照所述对象大小和所述对象类型创建对象,根据所述对象大小更新所述系统信息中的所述对象堆的剩余空间的起始偏移地址,根据当前应用实例的偏移地址将所述创建的对象的偏移地址存入到当前应用实例中与所述对象地址位置对应的位置中,返回步骤S1;
步骤S5:所述java卡虚拟机根据所述修改对象指令获取对象地址位置,根据所述对象地址位置从当前应用实例中获取对象偏移地址,根据所述修改对象指令获取修改位置和修改内容;
步骤S6:所述java卡虚拟机根据所述对象偏移地址和所述修改位置,将所述对象偏移地址上的对象中所述修改位置上的数据修改为所述修改内容,返回步骤S1。
所述步骤S1之前还包括:所述java卡虚拟机接收用户发送的选择应用指令,根据所述选择应用指令获取应用ID,根据所述应用ID查找对应的应用程序,并判断是否查找到与所述应用ID对应的应用程序,是则将查找到的所述应用程序作为当前应用程序,执行步骤S1,否则提示错误,结束。
所述步骤S2具体为:所述java卡虚拟机对所述创建对象指令进行编译,得到第一编译指令,根据所述第一编译指令获取与所述当前应用程序对应的应用实例的偏移地址,将所述偏移地址上的应用实例作为当前应用实例,根据所述第一编译指令获取对象大小、对象类型和对象地址位置。
所述步骤S2中根据所述创建对象指令获取对象大小为:所述java卡虚拟机从所述创建对象指令中获取所述对象大小。
所述步骤S2中根据所述创建对象指令获取对象大小为:所述java卡虚拟机从所述创建对象指令中获取存储区的偏移地址和数据在存储区中的位置,根据所述存储区的偏移地址,在存储区中根据所述数据在存储区中的位置获取数据,将获取到的数据作为所述对象大小。
所述步骤S3与步骤S4之间包括:所述java卡虚拟机从所述系统信息中获取对象堆大小,根据所述对象堆大小和所述对象堆的剩余空间的起始偏移地址得到对象堆的剩余空间大小,判断所述对象堆的剩余空间大小是否大于所述对象大小,是则执行步骤S4,否则提示错误,返回步骤S1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于飞天诚信科技股份有限公司,未经飞天诚信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410174222.5/2.html,转载请声明来源钻瓜专利网。





