可以放在 Java 包中的 Java 类(公共(public)和非公共(public))的数量是否有限制?
最佳答案
tl; dr:该值取决于实现,因为它没有在 JVM 或 Java 规范中的任何地方定义。
实际上,它可能介于 maxUint16 和 maxUint64 之间。
由于 JVM 的性质,有很多限制,但类和包的数量不是其中之一。
我发现 Java 规范中的这句话在这种情况下很有值(value)(source 7.2):
它确实鼓励 JVM 实现避免这种限制,即使它使用文件系统以外的其他东西来存储诸如包和类之类的编译工件。
正如对您的问题的评论之一所指出的,可能存在技术限制,但对于大多数用例来说,它们可能已经足够高了。根据您使用的实现,它也可能有很大差异。话虽如此,您可能可以拥有数百万个包和类而不会出现任何问题。
为了完整性和可达性,我将在此处内嵌 @Holger 评论: