Java类可以拥有的最大字段数是多少?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java类可以拥有的最大字段数是多少?相关的知识,希望对你有一定的参考价值。

java类或关联对象实例可以拥有的字段数是否有限制,如果是,它是什么?

我明确地询问字段,而不是问题中提到的方法:What is the maximum number of methods a Java class can have?

答案

在JVM规范中它说:

可以由类或接口声明的字段数量被ClassFile结构的fields_count项的大小限制为65535(第4.1节)

另一答案

class file format包含一个字段声明列表,其大小为无符号短整型,因此可以允许65535声明,但实际上不可能声明65535个字段。

每个字段必须具有唯一的名称和类型组合,这些名称和类型存储在类的常量池中,该池只能容纳65534个条目,但也包含描述当前类及其超类的常量和属性名称,以及其他功能。需要专用常量条目的类的每个特性都将减少可能的已声明字段数。

因此,对于要求所有字段都具有唯一名称的Java源代码,不可能在类中声明许多字段。使用手工制作的字节代码,您可以利用名称不需要唯一的事实来声明65535个字段,但是您不能在同一个类中使用所有这些字段,因为访问该字段需要一个“名称和类型”条目来描述唯一组合,以及指向“名称和类型”条目和声明类的字段描述符。

但请记住,类可以继承超类中的字段。

以上是关于Java类可以拥有的最大字段数是多少?的主要内容,如果未能解决你的问题,请参考以下文章

oracle中字段类型varchar2最大长度是多少?

谁知道Access数据库行数有没有限制?是多少?

MYSQL各字段的长度是多少

JAVA里的“字段”是啥?

mysql数据库最大能支持多少并发量

中文本的最大长度? [复制]