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