测者的测试技术手册:揭开java method的一个秘密--巨型函数

栏目: Java · 发布时间: 7年前

内容简介:相信,很多人都不知道Java的Method的上限为1、如果代码超过了这个限制,Java编译器就报"Code too large to complier"的错误。 2、代码并没有超过64K的限制,但是在运行时由于其他工具或者library使得对应的代码超过了64K的限制,那么Java会给我们一个java.lang.VerifyError的错误。如下一些仅仅是一些可能导致出现巨型函数的常见情况,还有很多其他情况就不一一列举了。

揭开java method的一个秘密:巨型函数

相信,很多人都不知道 Java 的Method的上限为 64K 。本文将超过这个上限的函数叫做巨型函数。

巨型函数的问题

1、如果代码超过了这个限制,Java编译器就报"Code too large to complier"的错误。 2、代码并没有超过64K的限制,但是在运行时由于其他 工具 或者library使得对应的代码超过了64K的限制,那么Java会给我们一个java.lang.VerifyError的错误。

巨型函数是怎么来的

如下一些仅仅是一些可能导致出现巨型函数的常见情况,还有很多其他情况就不一一列举了。

一些工具生成的代码

很多大函数并不是人手动写出来的,是一些代码生成工具生成的,例如ANTLR(ANother Tool for language Recognition)就有可能生成巨大的Method。

初始化函数

Initialization方法就很容易变成巨型函数,尤其是一些GUI的初始化函数,很容易在一个代码段中塞进去很多对应的GUI的布局定义代码和attaching listener代码,导致巨型函数的产生。

数组初始化

测者在工作中也遇见过static final 数组编译器使用load或者sotre的指令初始化数组。这有时候也会导致出现巨型函数。

很长的JSP页面

很多JSP的编译器也会将所有的JSP代码编译到一个函数中,导致巨型函数的出现。

如何解决巨型函数的问题

最好也是最根本的解决巨型函数的方法就是拆分。无论是代码生成工具还是JSP都允许我们进行代码的拆分。但是其他一些例如调用第三方工具或者library导致的这个问题,很多时候就不能通过粗暴的代码拆分解决问题了,需要重新设计,优化算法等方式避免巨型函数的出现。也有很多时候我们没有办法避免巨型函数的64K限制,我们最终的根本方法还是寄希望于Java自身接触64K的限制。

关注测者,关注测试


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

九败一胜

九败一胜

李志刚 / 北京联合出版公司 / 2014-9-1 / 42.00元

所有的创业者都面临着很多问题,困惑不是个人的,是有共性的。 除了自身去摸索着石头走路,他们还可以通过学习,从那些在创业路上走得更远的创业者身上学到经验、教训。 这本书的主角——王兴,恰好就是一个很好的学习对象。出生于1979年的王兴,很早就创业了,2004他就开始和同学一块创业,2005年做出了校内网;2007年,他又做出了饭否网——这是中国最早的类似twitter的网站。 ......一起来看看 《九败一胜》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试