gpt4 book ai didi

java - Web 应用程序类路径和类加载到堆中

转载 作者:行者123 更新时间:2023-12-02 00:46:59 27 4
gpt4 key购买 nike

如果我有两个 web 应用程序,它们的 web-inf/lib 目录中都有相同的第三方库 jar,例如 log4j .....当加载第一个 web 应用程序并创建 log4j 类时,该类被加载到堆中。当第二个 web 应用程序加载并尝试加载 log4j 类时,它会在堆中找到该类并使用该类吗?或者它会将自己的类副本加载到堆中?

最佳答案

嗯,我认为这主要是一个 ClassLoader 问题,它仍然取决于您使用的应用程序服务器,但我猜大多数都使用单个 JVM 并为每个正在运行的 Web 应用程序保留一个 ClassLoader,以便您可以拥有不同的 Web 应用程序相同 jar/classes 的不同版本一起运行。

例如,在 tomcat 中,如果您需要一些共享库,您可以使用/tomcat/shared/lib 文件夹,您可以在其中放置所有 Web 应用程序可以访问的所有 jar 文件。

否则,不同的Web应用程序将不会共享相同的堆,这意味着Web应用程序可以访问由同一应用程序服务器中运行的其他Web应用程序创建的对象

关于java - Web 应用程序类路径和类加载到堆中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4708505/

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