我了解到,在Java中方法的最大大小为64k。如果超过此大小,我们将收到编译器警告,如“代码太大无法编译”。那么,我们能否称这是Java的一个缺点,因为内存量太小呢?
我们能否增加此大小限制或者真正可能增加呢?
关于此方法大小,还有其他想法吗?
我们能否增加此大小限制或者真正可能增加呢?
关于此方法大小,还有其他想法吗?
据我的经验,64KB的限制只是针对生成的代码有影响,尤其是在初始化大型数组时(这通常是在代码中完成的)。
在良好结构的代码中,每个方法的长度都可控制且远小于此限制。要加载到数组中的大数据块可以从非Java文件(如文本或二进制文件)中读取。
编辑:
值得注意的是,JIT不会编译大于8K的方法。这意味着代码运行速度会变慢,并且会影响垃圾回收时间(因为在搜索未编译的方法调用堆栈时效率较低,特别是对于大型方法)。
如果可能,应该将方法限制在8K而非64K以内。
64k是相当大的,如果超过了这个限制,你可能需要重新组织你的代码。
在我的项目中,我曾经在生成的源代码中遇到过这个限制。通过将一个方法拆分为几个方法来解决问题。
如果你的方法超过了50行,包括内部注释-请将其拆分。这样,即使存在限制,您也永远不会达到任何限制。
我个人见过1000行长的方法(由自称为程序员的罪犯编写:)),但没有看到这种类型的限制。