2016-09-27 64 views
2

在Java類中可以聲明多少個字段是否有限制? This question解決方法的參數數量,但我很好奇,知道Java類是否有任何限制,以及這個限制是多少。類中的字段限制

這只是出於好奇 - 我實際上不會宣佈擁有數千個字段的類。

+0

這幾乎可以肯定不會回答你的問題,但硬限制將是最大化可用堆空間與一個實例xD –

+1

爲什麼你對可以在類中聲明多少個字段感興趣?如果你需要有成千上萬的字段,你可能不需要爲它們設置不同的名字,但是你將使用一個集合或者數組來存儲它們的值,通過索引來訪問它們。 –

+0

在我的編輯中添加了一些精度。這只是一種好奇心。 –

回答

4

是,65535,這裏說明https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.11

相關部分是:

可以由一個類或接口中聲明字段的數量是有限的 到65535通過的大小ClassFile 結構(§4.1)的fields_count項。

請注意,ClassFile 結構的fields_count項的值不包括從超類 或超接口繼承的字段。

+1

請添加確切的引號:「由ClassFile結構的fields_count項的大小限制,類或接口可能聲明的字段數限制爲65535」 – talex

+0

未給出提供相同源文件的鏈接目的? – uoyilmaz

+1

不完全。外部資源可能已損壞或無法訪問,因此最好在答案中有真正的答案。試想一下,甲骨文將會像IBM一樣被銷售,URL被取代。 – talex

8

恰好65535,不包括繼承的字段。

Limitations of the Java Virtual Machine

可由類聲明或接口由ClassFile結構(§4.1)的fields_count項的大小限制爲65535的字段數。

請注意,結構項的值不包括從超類或超接口繼承的字段。