当前位置:  开发笔记 > 编程语言 > 正文

Java类中允许的最大代码行数?

如何解决《Java类中允许的最大代码行数?》经验,为你挑选了3个好方法。

一个.java文件可以包含多少行代码?它取决于所使用的JVM吗?



1> coobird..:

为了扩展Jonas的响应,Java虚拟机规范,第4.8节关于Java虚拟机代码的约束说:

方法,实例初始化方法(第3.9节)或类或接口初始化方法(第3.9节)的Java虚拟机代码存储在类文件的method_info结构的Code属性的代码数组中.本节描述与Code_attribute结构的内容相关的约束.

继续第4.8.1节,静态约束

类文件的静态约束是定义文件格式良好的约束.除了类文件的Java虚拟机代码的静态约束之外,这些约束已在上一节中给出.类文件中Java虚拟机代码的静态约束指定了必须如何在代码数组中布置Java虚拟机指令以及各个指令的操作数必须是什么.

代码数组中指令的静态约束如下:

...

code_length项的值必须小于65536.

...

因此,每个方法的方法确实具有65535字节的字节码限制.(见下面的注释)

有关JVM的更多限制,请参见部分4.10 Java虚拟机的限制.

注意:尽管JVM的设计显然存在问题,但如果字节65535处的指令是1字节长的指令,则它不受异常处理程序的保护 - 这在4.10节的脚注4中列出.



2> 小智..:

我相信每种方法的字节码大小限制为64kb.



3> 小智..:

"代码行"没有限制,但总大小有限制.每种方法都有64kb的限制.

我只是遇到过代码生成工具.

如果你接近极限,要小心.许多分析和监视工具使用字节代码插入.如果距离太近,他们会把你推到顶端.更糟糕的是,他们经常在编译后改变你的类文件.所有内容都在您的开发环境中编译和运行,但是当您在Test或QA中打开监视工具时它会崩溃.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有