gpt4 book ai didi

Java "too many constants"JVM 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:37:29 25 4
gpt4 key购买 nike

我正在开发一个在运行时生成和编译类的应用程序。这有时会产生大量的生成代码。

在我们的一个测试用例中,我从 JVM 收到一个错误:

TestClass.java:83865: too many constants

就是这个。我看过其他关于类似错误的报告,但在那些情况下,错误消息提示常量池。但在这种情况下它不会。

如果这意味着达到了 JVM 常量池的限制,这意味着什么?我的意思是,就 Java 代码而言,这些常量是什么样的?类方法?字段?文字?我没有静态或 final方法,也没有字段。

你能给我一些线索吗?

编辑:

将代码拆分为多个类已经在计划中。虽然不是因为这个确切的原因。

我知道常量池的局限性,但我的疑问正是要进入的内容。生成的代码不超过 10000 个方法+字段。

我怀疑文字是否也进入常量池,因为这是我认为将这个数字提高到 65K 的唯一原因。好像是的。

最佳答案

http://en.wikipedia.org/wiki/Java_class_file#The_constant_pool

常量池包括数字、字符串、方法名、字段名、类名、对类和方法的引用……基本上一切。

最多可以有 65536 个。

关于Java "too many constants"JVM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11437905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com