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

时间:2011-09-20 18:36:12

标签: java jvm

我正在寻找一个简单的场景,可以要求创建自定义类加载器吗?

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

1 个答案:

答案 0 :(得分:9)

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

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

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

  • 允许从其他存储库加载类。

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

  • 分区用户代码。

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

  • 允许卸载类。

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