在Java中的方法的最大大小?

我知道java中一个方法的最大大小是64k。 如果超过,我们将得到一个编译器警告,如“代码太大,无法编译”。 所以我们可以称这是Java的一个缺点,这个less量的内存。

我们可以增加这个尺寸限制还是真的有可能增加?

有关此方法大小的更多想法?

根据我的经验,64KB的限制只是生成代码的一个问题。 ESP。 当初始化大数组(这是在代码中完成的)

在结构良好的代码中,每种方法都是可pipe理的,并且比这个限制小得多。 要加载到数组中的大块数据可以从非Java文件(如文本或二进制文件)中读取。

编辑:

JIT不会编译大于8 K的方法,这是不值得的。这意味着代码运行速度较慢,可能会影响GC时间(因为使用未编译的方法search线程的调用堆栈效率较低大的)

如果可能的话,你想把你的方法限制在8K而不是64K。

64k是相当多的,如果你超过它,你可能会考虑重组你的代码。

在我的项目中,我在生成的源代码中遇到了这个约束。 通过将一种方法分解为几个来解决。

如果你的方法超过50行,包括内部评论 – 分裂它。 在这种情况下,你永远不会达到任何限制(即使存在)。

我亲眼看到1000行长的方法(由自称是程序员的罪犯写的:)),但没有看到这种限制。