一种Java代码优化的方法和装置制造方法及图纸

技术编号:19634680 阅读:28 留言:0更新日期:2018-12-01 15:28
本发明专利技术实施例提供一种Java代码优化的方法和装置,能够解决在面对冗长的Java方法时无法提供优化策略以及进行优化的问题。该方法包括:获取Class文件中的Java方法,判断Java方法是否为行数超过行数阈值的待处理Java方法;若是,对待处理Java方法进行数据流和控制流分析;将通过分析得出的数据输入预先训练的模型,以对待处理Java方法进行优化。

A Method and Device for Java Code Optimization

The embodiment of the present invention provides a method and device for Java code optimization, which can solve the problem that optimization strategy and optimization can not be provided in the face of a lengthy Java method. This method includes: obtaining Java method in Class file, judging whether Java method is a Java method to be processed whose row number exceeds the threshold of row number; if so, analyzing data flow and control flow of Java method to be processed; and optimizing Java method to be processed by inputting pre-trained data model through analysis.

【技术实现步骤摘要】
一种Java代码优化的方法和装置
本专利技术涉及计算机领域,尤其涉及一种Java代码优化的方法和装置。
技术介绍
随着Java语言的流行,产生了很多的集成开发环境和开发工具,如Eclipse、IDEA等主流的开发工具。这些工具也越来越智能,能进行代码重复提示、简单语法错误提示、输入自动补全以及建立类之间的引用关系图等诸多实用的功能,极大地提高了代码开发的效率。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:虽然现有技术中的方案能提高开发效率,有效的进行代码版本控制,但是却不具备优化代码的功能,例如针对那些很冗长的Java方法,无法给出需要优化重构的提示,也不能给出相应的优化策略,这就会造成代码的可读性越来越差,进而造成维护的成本越来越高。
技术实现思路
有鉴于此,本专利技术实施例提供一种Java代码优化的方法和装置,能够解决在面对冗长的Java方法时无法提供优化策略以及进行优化的问题。为实现上述目的,根据本专利技术的一个方面,提供了一种Java代码优化的方法。本专利技术实施例的一种Java代码优化的方法包括:获取Class文件中的Java方法,判断Java方法是否为行数超过行数阈值的待处理Java方法,其中,Java方法包括至少一行的执行操作语句;若是,对待处理Java方法进行数据流和控制流分析;将通过分析得出的数据输入预先训练的模型,以对待处理Java方法进行优化。可选地,获取Class文件中的Java方法,包括:读取Class文件的字节流,通过借助于类的访问标志位和方法的访问标志位进行的判断,获取Class文件中的Java方法。可选地,本专利技术根据Class文件中的Java方法的总数、每个Java方法各自的行数以及Class文件中的所有Java方法的总行数,确定Java方法的平均行数,作为行数阈值。可选地,本专利技术获取Java方法的属性表,基于属性表中的属性,通过转换确定Java方法的行数。可选地,本专利技术的行数阈值能够由用户设定。为实现上述目的,根据本专利技术实施例的另一方面,提供了一种Java代码优化装置。本专利技术实施例的一种Java代码优化装置包括:处理模块,用于获取Class文件中的Java方法,判断Java方法是否为行数超过行数阈值的待处理Java方法,其中,Java方法包括至少一行的执行操作语句;分析模块,用于当Java方法的行数超过行数阈值时,对待处理Java方法进行数据流和控制流分析;优化模块,用于将通过分析得出的数据输入预先训练的模型,以对待处理Java方法进行优化。可选地,本专利技术的处理模块还用于:读取Class文件的字节流,通过借助于类的访问标志位和方法的访问标志位进行的判断,获取Class文件中的Java方法。可选地,本专利技术的处理模块还用于:根据Class文件中的Java方法的总数、每个Java方法各自的行数以及Class文件中的所有Java方法的总行数,确定Java方法的平均行数,作为行数阈值。可选地,本专利技术的处理模块还用于:获取Java方法的属性表,基于属性表中的属性,通过转换确定Java方法的行数。可选地,本专利技术的行数阈值能够由用户设定。为实现上述目的,根据本专利技术实施例的再一方面,提供了一种实现Java代码优化方法的电子设备。本专利技术实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例的Java代码优化的方法。为实现上述目的,根据本专利技术实施例的又一方面,提供了一种计算机可读介质。本专利技术实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术实施例的Java代码优化的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用数据流和控制流分析以及基于模式识别的方法,对Java方法进行优化的技术手段,所以克服了在面对冗长的Java方法时无法提供优化策略以及进行优化的技术问题,进而达到对Java代码进行优化以及增强代码可读性技术效果,有利于为后期代码的维护、测试降低时间和人力成本的开销;通过本专利技术实施例所提供的技术方案,首先能提示开发人员哪些方法冗长了,给开发人员一个乐观地心理暗示,以便开发人员进行优化;与此同时,使得开发人员能快速地整理思路,对代码进行优化,这样使得开发人员乐于优化代码。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的Java代码优化的方法的主要步骤的示意图;图2是根据本专利技术实施例的Java代码优化的方法的整体流程示意图;图3是根据本专利技术实施例的Java代码优化的方法的部分流程示意图;图4是根据本专利技术实施例的Java代码优化的装置的主要模块的示意图;图5是实现本专利技术实施例的Java代码优化的方法的电子设备的硬件结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。正如本专利技术
技术介绍
所述的,现有技术中的代码中有很多的Java方法长达几百行,将各种行为逻辑都加入到一个方法中,这不仅破坏了面向对象的行为原则,而且使得代码丧失了可读性,增大了代码维护的成本,甚至选择重新开发,这样时间成本和人力成本都增大了很多。因此,本专利技术的实施例的技术方案通过以Java行数为依据,将行数较多的Java方法进行统一优化,从而达到对Java代码进行优化的目的。在详尽阐述本专利技术的技术方案之前需要对如下名词做出解释:Class文件:是一种平台独立,利用二进制格式来表示编译后的Java代码的文件存储形式。模式识别:自动地从数据或者信息中提取出某种特征,然后与既有的带有分类标号的模型或者规则进行匹配。Code属性:描述了Java源码编译后所生成的机器码。LineNumberTable属性:描述了Java源码行号与机器码的对应关系。图1是根据本专利技术实施例的Java代码优化的方法的主要步骤的示意图。如图1所示,本专利技术实施例的一种Java代码优化的方法主要包括如下步骤:步骤S11:获取Class文件中的Java方法,判断Java方法是否为行数超过行数阈值的待处理Java方法,Java方法包括至少一行的执行操作语句。本步骤主要是先筛选出行数较多的Java方法,然后在对这些方法进行优化,具体的,获取Class文件中的Java方法包括:读取Class文件的字节流,通过借助于类的访问标志位和方法的访问标志位进行的判断,获取Class文件中的Java方法;然后在获取Java方法的属性表,基于属性表中的属性,通过转换确定Java方法的行数;最后根据Class文件中的Java方法的总数、每个Java方法各自的行数以及Class文件中的所有Java方法的总行数,确定Java方法的平均行数,作为行数阈值。需要注意的是,根据不同的使用场景,本专利技术中的行数阈值能够由用户进行设定。步骤S12:对待处理Java方法进行数据流和本文档来自技高网
...

【技术保护点】
1.一种Java代码优化的方法,其特征在于,包括:获取Class文件中的Java方法,判断所述Java方法是否为行数超过行数阈值的待处理Java方法,其中,所述Java方法包括至少一行的执行操作语句;若是,对所述待处理Java方法进行数据流和控制流分析;将通过分析得出的数据输入预先训练的模型,以对所述待处理Java方法进行优化。

【技术特征摘要】
1.一种Java代码优化的方法,其特征在于,包括:获取Class文件中的Java方法,判断所述Java方法是否为行数超过行数阈值的待处理Java方法,其中,所述Java方法包括至少一行的执行操作语句;若是,对所述待处理Java方法进行数据流和控制流分析;将通过分析得出的数据输入预先训练的模型,以对所述待处理Java方法进行优化。2.根据权利要求1所述的方法,其特征在于,获取Class文件中的Java方法,包括:读取所述Class文件的字节流,通过借助于类的访问标志位和方法的访问标志位进行的判断,获取Class文件中的Java方法。3.根据权利要求1所述的方法,其特征在于,包括:根据所述Class文件中的Java方法的总数、每个Java方法各自的行数以及所述Class文件中的所有Java方法的总行数,确定Java方法的平均行数,作为所述行数阈值。4.根据权利要求3所述的方法,其特征在于,包括:获取所述Java方法的属性表,基于所述属性表中的属性,通过转换确定所述Java方法的行数。5.根据权利要求1所述的方法,其特征在于,所述行数阈值能够由用户设定。6.一种Java代码优化的装置,其特征在于,包括:处理模块,用于获取Class文件中的Java方法,判断所述Java方法是否为行数超过行数阈值的待处理Java方法,其中,所述Java方法包括至少一行的执行...

【专利技术属性】
技术研发人员:曾佳平
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1