我正在寻找一个简单的场景,可以要求创建自定义类加载器吗?
除此之外,只是想确认甚至bootstrap和应用程序类加载器是否在内部扩展了java.lang.ClassLoader?
答案 0 :(得分:9)
简而言之,它可用于添加新代码或动态更改现有代码。以下是URL的详细解释。
为什么要编写自定义类加载器?
想要创建自定义类加载器的三个主要原因是:
允许从其他存储库加载类。
这是最常见的情况,其中应用程序开发人员可能希望从其他位置加载类,例如,通过网络连接。
分区用户代码。
这种情况不常被应用程序开发人员使用,但在servlet引擎中广泛使用。
允许卸载类。
如果应用程序创建大量仅用于有限时间段的类,则此情况很有用。因为类加载器维护它已加载的类的缓存,所以在取消引用类加载器本身之前,不能卸载这些类。出于这个原因,系统和扩展类永远不会被卸载,但是当它们的类加载器可以卸载应用程序类时。