我刚刚编译了以下代码
public class A {
public static void main(String... args) {
int i = 3;
++i;
++i;
++i;
++i;
++i;
++i;
++i;
++i;
// repeat writing the expression ++i for 20,000 times
System.out.println(i);
}
}
Run Code Online (Sandbox Code Playgroud)
并收到以下错误消息
方法main(String ...)的代码超过65535字节限制
为什么Java实现此限制?我没有看到理性,因为Java确实包含了goto_w指令.
Whi*_*g34 26
请参阅Java虚拟机规范部分4.10:
4.10 Java虚拟机的限制
- 每个非本机非抽象方法的代码量由Code属性(第4.7.3节)的exception_table中的索引大小限制为65536字节,在LineNumberTable属性(第4.7.8节)中,在LocalVariableTable属性中(§4.7.9).
在面向对象的编程语言中使用长方法几乎没有什么好的理由.
| 归档时间: |
|
| 查看次数: |
16935 次 |
| 最近记录: |