4.11 Java 虚拟机限制
下面为在 Class 文件格式中的 Java 虚拟机限制:
-
每个类或接口的常量池项最多为65535个,它是由ClassFile结构中的16
位 constant_pool_count 字段的值决定。这限制了单个类或接口的复杂度。
-
方法调用时创建的栈帧的局部变量表中的最大局部变量个数65535个,它是由方法代码
所处的 Code 属性中的 max_locals 项的值和 Java 虚拟机指令集的 16位局部变量索引所决定。注意,每个 long 和 double 类型都被认为会使用两个局部变量位置并占据 max_locals 中的两个单元,所以使用这些类型时,局部变量的限制的最大值就会相应地减少。
-
类或接口中可以声明的字段数最多为65535个,它是由ClassFile结构中fields_count 项的值所决定。注意,ClassFile 结构中的 fields_count 项的值不包