java类或关联对象实例可以拥有的字段数是否有限制,如果有,是什么?
我明确询问字段,而不是在这个问题中询问 的方法:Java 类可以拥有的最大方法数是多少?
在类文件格式包含字段声明,其大小是一个无符号短,因此可以允许65535点声明列表,但它不是在实践中可能宣布65535场。
每个字段必须有唯一的名称和类型组合,这些名称和类型存储在类的常量池中,最多只能容纳 65534 个条目,但还将包含描述当前类及其超类的常量以及属性名称等功能。需要专用常量条目的类的每个功能都将减少声明字段的可能数量。
因此,对于要求所有字段具有唯一名称的 Java 源代码,不可能在一个类中声明那么多字段。使用手工制作的字节码,您可以利用名称不需要唯一的事实来声明 65535 个字段,但您不能在同一个类中使用所有这些字段,因为访问该字段需要一个“名称和类型”条目来描述唯一的组合,加上一个指向“名称和类型”条目和声明类的字段描述符。
但请记住,类可以从超类继承字段。
JVM 规范中写道:
\n\n\n\n类或接口可以声明的字段数被 ClassFile 结构的 fields_count 项的大小限制为 65535 (\xc2\xa74.1)
\n