Java .class文件的最大大小是多少?

Java .class文件的最大大小是多少?,第1张

Java .class文件的最大大小是多少?

JVM规范对类文件没有限制,并且由于类文件是可扩展的容器,支持任意的自定义属性,因此您甚至可以根据需要将其最大化。

每个属性具有大小字段的的

u4
类型,因此,可以指定一个数字向上的至
2³²-1
4GiB
)。实际上,由于JRE
API(
ClassLoader
方法,Instrumentation
API和
Unsafe
)全部一致地使用
byte[]
ByteBuffer
描述类文件,因此不可能创建具有多于
2³¹-1
字节(
2GiB
)的类文件的运行时类。

换句话说,即使是单个自定义属性,其大小也可能超过实际可加载类的大小。但是,一个类可以具有65535个属性,外加65535个字段,每个字段都具有自己的65535个属性,以及65535个方法,每个方法也最多具有65535个属性。

如果您进行数学计算,您将得出结论,仍然格式正确的类文件的理论最大值可能会超出任何实际存储空间(超过2个字节)。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5561090.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存