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

问题描述 投票:2回答:2

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

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

java jvm
2个回答
1
投票

在JVM规范中它说:

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


1
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.