如果我有3个罐子,例如:
(a.jar
取决于c.jar
),(b.jar
也取决于c.jar
)。
a.jar
和b.jar
是独立构建的,其依赖关系仅在一个包中。
当我同时运行a.jar
和b.jar
并加载到内存时会发生什么?
依赖项是两次加载到内存中还是只加载一次因为它们是相同的库版本?
答案 0 :(得分:1)
每次运行Java时,都会启动一个具有自己内存的新进程。
我似乎记得正在努力将来自多个进程的所有Java SE核心类加载到同一本机内存空间中;我不知道是否已实施。
无论如何,库.jars将始终由每个Java进程独立加载,在该进程的内存中。但是,整个.jar不一定是加载的;只有在其他代码中遇到对它们的引用时,Java才会加载类。