一个人可能需要自定义类加载器的场景?

M S*_*ach 5 java jvm

我正在寻找一个简单的场景,何时需要创建自定义类加载器?

除此之外,只是想确认甚至bootstrap和应用程序类加载器是否在内部扩展了java.lang.ClassLoader?

RHT*_*RHT 9

简而言之,它可用于添加新代码或动态更改现有代码.以下是此URL的更详细说明.

为什么要编写自定义类加载器?

想要创建自定义类加载器的三个主要原因是:

  • 允许从备用存储库加载类.

    这是最常见的情况,其中应用程序开发人员可能希望从其他位置加载类,例如,通过网络连接.

  • 分区用户代码.

    这种情况不常被应用程序开发人员使用,但在servlet引擎中广泛使用.

  • 允许卸载类.

    如果应用程序创建大量仅用于有限时间段的类,则此情况很有用.因为类加载器维护它已加载的类的缓存,所以在取消引用类加载器本身之前,不能卸载这些类.因此,系统和扩展类永远不会被卸载,但应用程序类可以在其类加载器时卸载.