一个Java包可以放多少个类?

一个Java包可以放多少个类?,java,class,package,packages,Java,Class,Package,Packages,对于可以放入Java包中的Java类(公共类和非公共类)的数量是否有任何限制?tl;dr:该值取决于实现,因为它在JVM或Java规范中没有定义 实际上,它可能介于maxUint16和maxUint64之间 由于JVM的性质,有许多限制,但类和包计数不在其中 我发现Java规范中的这句话在这种情况下是值得的(7.2): 例如,使用数据库存储包的系统可能不强制每个编译单元最多只能有一个公共类或接口 它确实鼓励JVM实现避免这样的限制,即使它使用文件系统以外的东西来存储编译工件,比如包和类 正如在

对于可以放入Java包中的Java类(公共类和非公共类)的数量是否有任何限制?

tl;dr:该值取决于实现,因为它在JVM或Java规范中没有定义

实际上,它可能介于maxUint16和maxUint64之间


由于JVM的性质,有许多限制,但类和包计数不在其中

我发现Java规范中的这句话在这种情况下是值得的(7.2):

例如,使用数据库存储包的系统可能不强制每个编译单元最多只能有一个公共类或接口

它确实鼓励JVM实现避免这样的限制,即使它使用文件系统以外的东西来存储编译工件,比如包和类

正如在您的问题的一条评论中所指出的,可能存在技术限制,但对于大多数用例来说,它们可能已经足够高了。根据您使用的实现,它也可能有很大的不同。也就是说,您可能有数百万个包和类,而没有任何问题


为了完整性和可访问性,我将在此处内联@Holger注释:

规范中没有限制,因此您可以将类放入包中,直到达到技术限制。如果在文件系统或归档格式上没有达到限制,则运行时实现可能会使用数组或集合来保存类,这将类的数量限制在接近2的范围内。您可能会遇到内存限制之前


@JohnJoe的可能副本不是副本。另一个问题问的是建议的限制,而不是绝对限制。这是一个令人担忧的问题。@shmosel为什么会这样?@EllenSpertus为什么他需要知道?