博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测者的测试技术手册:揭开java method的一个秘密--巨型函数
阅读量:6846 次
发布时间:2019-06-26

本文共 869 字,大约阅读时间需要 2 分钟。

揭开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的限制。

关注测者,关注测试

转载于:https://juejin.im/post/5c10a3936fb9a049ae07bff0

你可能感兴趣的文章
DNS之智能DNS二(Windows)
查看>>
批量修改文件后缀名的方法(当前目录及子目录)
查看>>
Linux Shell脚本攻略
查看>>
[信息图]手机进化史
查看>>
我的友情链接
查看>>
“我来管管看”系列:采购误差缘何而来?
查看>>
关于iSCSI的一些介绍
查看>>
iptables 学习笔记
查看>>
MongoDB与内存
查看>>
tcpdump抓取mysql报文
查看>>
ubuntu下的中文搜索sphinx的安装配置
查看>>
三.Object-C 方法,封装 (下)
查看>>
2003年9月全国计算机等级考试二级C语言笔试试题及答案
查看>>
重复制造轮子之——字节数组写入文件
查看>>
IMP 导入表结构到指定用户
查看>>
windows下FTP连接linux简单演示-dos操作
查看>>
redhat6启动U盘安装
查看>>
H3C 交换机 和windows NPS结合实现内网802.1X认证
查看>>
device "eth0" does not seem to be present, delaying initialization
查看>>
mysql日志
查看>>