发明名称 一种Java卡垃圾回收方法
摘要 本发明公开了一种Java卡垃圾回收的方法,属于信息安全领域。所述方法包括:Java卡虚拟机上电后判断垃圾回收标志是否有效,是则执行垃圾回收操作,否则等待接收命令,当接收到命令后对命令进行解析,若所述命令为第一删除命令且应用程序管理集中有与所述命令数据域对应的应用标识符,则执行删除应用程序操作,若所述命令为第一删除命令且包管理集中有与所述命令数据域对应的应用标识符,则执行删除包操作;若所述命令为第二删除命令,则执行删除包及其包含的应用程序操作,若所述命令为其它命令则根据所述命令执行相应操作。该方法具有减少垃圾回收的开销、提高垃圾回收的效率,防止在垃圾回收过程中Java卡虚拟机的异常掉电的优点。
申请公布号 CN102591788A 申请公布日期 2012.07.18
申请号 CN201110439970.8 申请日期 2011.12.23
申请人 飞天诚信科技股份有限公司 发明人 陆舟;于华章
分类号 G06F12/02(2006.01)I 主分类号 G06F12/02(2006.01)I
代理机构 代理人
主权项 一种Java卡垃圾回收的方法,其特征在于:Java卡虚拟机接收到命令后,对所述命令进行解析,当所述命令为第一删除命令时执行步骤S1,当所述命令为第二删除命令时执行步骤S9,当所述命令为其它命令时根据所述命令执行相应操作:步骤S1:判断应用程序管理集中是否有与所述第一删除命令的数据域相对应的应用标识符,是则执行步骤S2,否则执行步骤S5;步骤S2:判断所述应用标识符对应的应用程序是否满足删除条件,是则将垃圾回收标志位置为有效执行步骤S3,否则执行步骤S12;步骤S3:查找所述应用程序的对象、子孙对象,以及查找所述应用程序的应用标识符的对象、子孙对象,回收所述应用程序的对象、子孙对象以及所述应用标识符的对象、子孙对象在Java卡存储区域中占用的空间,回收所述应用程序的对象、子孙对象以及所述应用标识符的对象、子孙对象的对象索引值在对象管理表中占用的空间;步骤S4:若所述步骤S3中的操作成功完成,则将所述垃圾回收标志位置为无效,执行步骤S12,若在所述Java卡虚拟机在执行上述操作过程中掉电,则重新上电后执行步骤S12;步骤S5:判断包管理集中是否有与所述第一删除命令的数据域相对应的应用标识符,是则执行步骤S6,否则执行步骤S12;步骤S6:判断所述应用标识符对应的包是否包含应用程序,是则执行步骤S12,否则将所述垃圾回收标志位置为有效,执行步骤S7;步骤S7:查找所述包的对象、子孙对象,回收所述包的对象、子孙对象在所述Java卡存储区域中占用的空间,回收所述包的对象、子孙对象的对象索引值在所述对象管理表中占用的空间;步骤S8:若所述步骤S7中的操作成功完成,则将所述垃圾回收标志位置为无效,执行步骤S12,若在所述Java卡虚拟机在执行上述操作过程中掉电,则重新上电后执行步骤S12;步骤S9:判断所述包包含的应用程序是否满足删除条件,是则将垃圾回收标志位置为有效,执行步骤S10,否则执行步骤S12;步骤S10:查找所述包包含的应用程序的对象、子孙对象,以及查找所述包的应用标识符的对象、子孙对象,回收所述应用程序的对象、子孙对象以及所述应用标识符的对象、子孙对象在所述Java卡存储区域中占用的空间,回收所述应用程序的对象、子孙对象以及所述应用标识符的对象、子孙对象的对象索引值在所述对象管理表中占用的空间,回收所述包的对象、子孙对象在所述Java卡存储区域中占用的空间,回收所述包的对象、子孙对象的对象索引值在所述对象管理表中占用的空间,回收所述应用标识符在所述包管理集中占用的空间;步骤S11:若所述步骤S10中的操作成功完成,则将所述垃圾回收标志位置为无效,执行步骤S12,若在所述Java卡虚拟机在执行上述操作过程中掉电,则重新上电后执行步骤S12;步骤S12:判断所述垃圾回收标志位是否有效,是则执行垃圾回收操作,否则所述Java卡虚拟机等待接收命令,且在接收到命令后对所述命令进行解析以及根据所述命令执行相应操作。
地址 100085 北京市海淀区学清路9号汇智大厦B座17层