发明名称 一种基于java卡虚拟机中对象管理的方法
摘要 本发明公开一种基于java卡虚拟机中对象管理的方法,包括:java卡虚拟机在运行过程中检测到创建对象操作,将创建对象的基本信息填入到第二存储空间中,获得将要创建对象的偏移地址并将其存储到子对象表的空表项中,计算将要创建对象的索引值用其更新存储的第一索引值;检测到删除CAP镜像操作,将第一存储空间中的与删除CAP镜像ID对应的CAP镜像标记为碎片,依次检测第一存储空间中组件的类型,如为子对象表则将子对象表向高地址方向移动,修改存储在主对象表中子对象表的偏移地址,如为CAP镜像则将CAP镜像向高地址方向移动,更新CAP镜像的地址。本发明采用主对象表和子对象表来管理对象,简单方便,且能节省资源。
申请公布号 CN103116518A 申请公布日期 2013.05.22
申请号 CN201310031158.0 申请日期 2013.01.28
申请人 飞天诚信科技股份有限公司 发明人 陆舟;于华章
分类号 G06F9/455(2006.01)I;G06F12/02(2006.01)I 主分类号 G06F9/455(2006.01)I
代理机构 代理人
主权项 一种基于java卡虚拟机中对象管理的方法,其特征在于,包括:步骤S1:java卡虚拟机在java卡程序运行过程中检测将要进行的操作,如是进行创建对象操作,则执行步骤S2;如是进行删除CAP镜像操作则执行步骤S7;步骤S2:所述java卡虚拟机在第二存储空间中申请将要创建对象的空间,填入所述将要创建对象的基本信息,获得所述将要创建对象的偏移地址;步骤S3:所述java卡虚拟机判断子对象表中是否有空表项,是则将所述空表项所在子对象表作为当前子对象表,执行步骤S6,否则执行步骤S4;步骤S4:所述java卡虚拟机判断主对象表中是否有空表项,是则执行步骤S5,否则报错,返回步骤S1;步骤S5:所述java卡虚拟机根据子对象表的长度从第一存储空间中申请空间建立新子对象表,并获取所述新子对象表的偏移地址,将所述新子对象表的偏移地址存储到所述主对象表的空表项中,将所述新子对象表作为当前子对象表并获取其第一个空表项,执行步骤S6;步骤S6:java卡虚拟机将所述将要创建对象的偏移地址存储到当前子对象表的空表项中,计算所述将要创建对象的索引值并将其存储到操作栈中,并用所述将要创建对象的索引值更新存储的第一索引值,返回步骤S1;步骤S7:所述java卡虚拟机将所述第一存储空间中的与删除CAP镜像ID对应的CAP镜像标记为碎片,获取所述第一存储空间中的地址最大的组件作为当前组件;步骤S8:所述java卡虚拟机将所述第一存储空间中最高地址与当前组件地址之间的碎片大小加到第一存储空间的总碎片大小上,检测当前组件的类型,如为子对象表则执行步骤S9,如为CAP镜像则执行步骤S10;所述第一存储空 间的总碎片大小初始值为0;步骤S9:所述java卡虚拟机在所述第一存储空间中将所述子对象表向高地址方向移动所述第一存储空间的总碎片大小,修改存储在主对象表中所述子对象表的偏移地址,执行步骤S11;步骤S10:所述java卡虚拟机在所述第一存储空间中将所述CAP镜像向高地址方向移动所述第一存储空间的总碎片大小,更新所述CAP镜像的地址,执行步骤S11;步骤S11:所述java卡虚拟机判断在所述第一存储空间中是否存在地址较小的当前组件的相邻组件,是则将所述相邻组件作为当前组件,返回步骤S8,否则返回步骤S1。
地址 100085 北京市海淀区学清路9号汇智大厦B楼17层