[发明专利]一种虚方法的调用方法、电子设备及计算机可读存储介质有效
申请号: | 202110878229.5 | 申请日: | 2021-08-02 |
公开(公告)号: | CN113326041B | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 陆舟;于华章 | 申请(专利权)人: | 飞天诚信科技股份有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F9/455 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 方法 调用 电子设备 计算机 可读 存储 介质 | ||
本发明提供了一种虚方法的调用方法、电子设备及计算机可读存储介质,属于Java卡领域。Java卡根据虚方法调用指令确定拟被调用虚方法当前所属的类的地址,根据从虚拟机运行栈中的对象引用得到对象实际类的地址,当拟被调用虚方法当前所属的类的地址与对象实际类的地址不同时,在拟被调用虚方法当前所属的类的各级子类的虚方法映射表中查找拟被调用虚方法的索引,如查找不到,在拟被调用虚方法当前所属的类的父类中查找拟被调用虚方法的索引,查找到后根据拟被调用虚方法的索引从拟被调用虚方法当前所属的类的虚方法表中获取实际被调用虚方法的地址。本发明提高了Java卡的API的扩展性。
技术领域
本发明涉及Java卡领域,尤其涉及一种虚方法的调用方法、电子设备及计算机可读存储介质。
背景技术
Java卡是一种可以运行Java程序的智能卡,其通过解释执行应用文件包中Java字节码来实现应用的功能。Java字节码的生成过程包括:使用Java卡的API编写Java应用代码,编译Java应用代码得到class字节码,通过转换工具将class字节码转换为可以被Java卡执行的Java字节码,Java卡通过虚方法调用指令来执行Java字节码。
现有技术中, Java卡通过虚方法调用指令查找被调用虚方法时,只能通过子类索引父类的方式进行,这种方式的缺点在于一旦父类所属的应用文件包升级,其子类所属的应用文件包必须重新生成Java字节码才能继续运行,这是因为在父类所属的应用文件包升级后,父类所属的应用文件中的虚方法的地址将会发生改变,这就Java卡的API的扩展带来了极大的不便。
发明内容
为了解决现有技术中的不足,本发明提供了一种虚方法的调用方法、电子设备及计算机可读存储介质。
第一方面,本发明提供了一种虚方法的调用方法,包括如下步骤:
步骤101:Java卡根据虚方法调用指令在常量池中获取拟被调用虚方法,从所述拟被调用虚方法中获取拟被调用虚方法当前所属的类的引用和拟被调用虚方法的索引,根据所述拟被调用虚方法当前所属的类的引用确定拟被调用虚方法当前所属的类的地址;
步骤102:所述Java卡从虚拟机运行栈中获取对象引用,以所述对象引用为索引在保存的对象表中获取对象数据,从所述对象数据中获取对象实际类所属的包的标识和对象实际类的引用,根据所述对象实际类所属的包的标识和所述对象实际类的引用得到对象实际类的地址;
步骤103:所述Java卡判断拟被调用虚方法当前所属的类的地址与对象实际类的地址是否相同,如果是,执行步骤109,否则,根据拟被调用虚方法当前所属的类的地址和对象实际类的地址建立链表,执行步骤104;
步骤104:所述 Java卡判断所述链表中是否存在拟被调用虚方法当前所属的类的直接子类的地址,如果是,执行步骤105,否则,执行步骤107;
步骤105:所述Java卡判断拟被调用虚方法当前所属的类的直接子类的虚方法映射表中是否存在所述拟被调用虚方法的索引,如果是,执行步骤106,否则,执行步骤107;
步骤106:所述Java卡将拟被调用虚方法当前所属的类的地址设置为所述拟被调用虚方法当前所属的类的直接子类的地址,将拟被调用虚方法的索引设置为拟被调用虚方法在拟被调用虚方法当前所属的类的直接子类的虚方法映射表中的索引,返回步骤104;
步骤107:所述Java卡判断拟被调用虚方法当前所属的类的虚方法表中是否存在所述拟被调用虚方法的索引,如果是,执行步骤109,否则,执行步骤108;
步骤108:所述Java卡从拟被调用虚方法当前所属的类中获取拟被调用虚方法当前所属的类的父类的引用,根据拟被调用虚方法当前所属的类的父类的引用确定所述拟被调用虚方法当前所属的类的地址,根据所述拟被调用虚方法当前所属的类的地址获取所述拟被调用虚方法当前所属的类,返回步骤107;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于飞天诚信科技股份有限公司,未经飞天诚信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110878229.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种脉动钻井液振动筛
- 下一篇:一种基于最大比合并的多级数据融合方法及系统