java中方法的最大大小?

时间:2011-07-04 10:39:49

标签: java

我知道java中方法的最大大小是64k。如果它超过了,我们将收到编译器警告,例如“Code to large to compile”。所以我们可以用这么少的内存来称之为java的缺点。

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

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

3 个答案:

答案 0 :(得分:37)

根据我的经验,64KB限制只是生成代码的问题。 ESP。在对大型数组进行实体化时(在代码中完成)

在结构良好的代码中,每个方法都是可管理的长度,并且远小于此限制。可以从非Java文件(如文本或二进制文件)中读取要加载到数组中的大量数据。

编辑:

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

如果可能,您希望将方法限制为8 K而不是64 K.

答案 1 :(得分:7)

64k非常多,如果你超过它,你可能会考虑重新组织你的代码。

在我的项目中,我在生成的源中遇到过一次约束。只需将一种方法分成几种即可解决。

答案 2 :(得分:4)

如果您的方法超过50行(包括内部注释) - 将其拆分。在这种情况下,您永远不会达到任何限制(即使存在一个限制)。

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