有意思的小问题,java代码过长
最近在练习编程的时候,发现一个问题. 就是在测试一个排序功能时, 如果写入大批量的参数, 会报 “java: 代码过长” 的问题.
编程这么多年了, 第一次遇到这种问题, 还挺神奇的. 记录和总结一下.
现象重现
1 |
|
很简单的代码, 没事走两步
1 |
|
问题分析
首先, 顾名思义, 很明细就是字符长度超过了java 一个类文件的最大长度限制导致的.
那么java类文件的长度是多少呢?
经过一番不是很辛苦的查询, 定位到了原因:
There is a 64K byte-code size limit on a method
java中一个方法的最大长度是64Kb
很明细, 我们的这个方法长度超了.
问题解决
原因找到了, 要解决也就很简单了. 只要做到规避方法的最大长度就行了.
- 方法1 : 将一个大方法拆成多个小方法, 将一个大类拆成多个小类. 说实话, 一个64kb的类确实有点大了.
- 方法2 : 将测试数据不要放到java类里, 而是放到配置文件中, 使用的时候通过流加载到内存中. 文件的存储量是无限的
总结
其实只要符合正常的java编码规范, 我们基本上是遇不到上面的问题的.
只有在一些极限测试的时候, 我们通常会将测试内容放到代码里, 才可能碰到.
只能说: 没用的小知识又增多了🐶
参考
有意思的小问题,java代码过长
https://www.hancher.top/2022/09/22/exception-java-method-too-big/