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

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

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

巨型函数的问题

一、若是代码超过了这个限制,Java编译器就报"Code too large to complier"的错误。 二、代码并无超过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的限制。优化

关注测者,关注测试

相关文章
相关标签/搜索