JVM 字节码对类类交互的限制
我正在查看JVM字节码指令,并惊讶地发现类之间的所有交互(例如,转换等)都依赖于恒定的池查找来查找其他类的标识。new
我推断这意味着一个类不能知道超过64k个其他类的存在,因为不可能引用它们,这是正确的吗?如果确实需要引用那么多,那么应该做什么 - 将工作委托给多个类,每个类都可以有自己的<64k交互?
(我对此感兴趣的原因是,我有编写代码生成器的习惯,有时会生成数千个不同的类,并且某些语言(例如Scala)会大量创建类。因此,如果这是真的,我必须小心:如果我在一个类中有数百个方法,每个方法都使用数百个(不同的)类,我可能会超过恒定的池空间。