[发明专利]表达式的JAVA编译方法和装置有效
申请号: | 202011043605.0 | 申请日: | 2020-09-28 |
公开(公告)号: | CN112114818B | 公开(公告)日: | 2023-06-20 |
发明(设计)人: | 刘家卿;范新生;倪嘉 | 申请(专利权)人: | 建信人寿保险股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 贾磊;刘飞 |
地址: | 200120 上海市浦东新区自*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 表达式 java 编译 方法 装置 | ||
1.一种表达式的JAVA编译方法,其特征在于,包括:
对待编译表达式进行预处理;
根据待编译表达式生成groovy代码;
将所述groovy代码输入groovy脚本引擎得到二进制的JAVA类;
利用JVM装载JAVA类以在缓存中建立待编译表达式和所述JAVA类的对应关系;
获取所述缓存中所述JAVA类的调用频率;
判断所述调用频率是否满足预设条件;
若是,触发JIT以将所述JAVA类直接编译为机器码;
所述对待编译表达式进行预处理,包括:
屏蔽所述待编译表达式中全部的面向对象的特性;和/或
将所述待编译表达式中的等号替换为双等号;和/或
将所述待编译表达式中的外部输入变量转换为预设格式。
2.根据权利要求1所述的表达式的JAVA编译方法,其特征在于,所述根据待编译表达式生成groovy代码,包括:
对所述待编译表达式进行分词得到由元素组成的链状结构;
遍历所述链状结构以对各元素按照元素类型进行对应的预处理进而得到所述groovy代码。
3.一种表达式的JAVA编译装置,其特征在于,包括:
预处理模块,对待编译表达式进行预处理;
groovy代码生成模块,根据待编译表达式生成groovy代码;
二进制转换模块,将所述groovy代码输入groovy脚本引擎得到二进制的JAVA类;
JVM装载模块,利用JVM装载JAVA类以在缓存中建立待编译表达式和所述JAVA类的对应关系;
调用频率获取模块,获取所述缓存中所述JAVA类的调用频率;
判断模块,判断所述调用频率是否满足预设条件;
机器码编译模块,若调用频率满足预设条件,触发JIT以将所述JAVA类直接编译为机器码;
所述预处理模块包括:
屏蔽单元,屏蔽所述待编译表达式中全部的面向对象的特性;和/或
等号替换单元,将所述待编译表达式中的等号替换为双等号;和/或
格式转换单元,将所述待编译表达式中的外部输入变量转换为预设格式。
4.根据权利要求3所述的表达式的JAVA编译装置,其特征在于,所述groovy代码生成模块包括:
分词单元,对所述待编译表达式进行分词得到由元素组成的链状结构;
遍历预处理单元,遍历所述链状结构以对各元素按照元素类型进行对应的预处理进而得到所述groovy代码。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至2任一项所述的表达式的JAVA编译方法的步骤。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至2任一项所述的表达式的JAVA编译方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于建信人寿保险股份有限公司,未经建信人寿保险股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011043605.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:规则配置方法及装置
- 下一篇:基于引擎的电证报文自动处理方法及装置