ClassLoaders 存储在永久代内存中。并且正如Java HotSpot™ Virtual Machine 中的 java 内存管理白皮书中所述,永久代内存肯定会被垃圾回收。那么,自定义是否Classloader仍然会导致内存泄漏?如果是,那它是怎么发生的?
更新
在@Marko Topolnik 和@Prunge 的帮助下,我明白了我的疑问。关于 ClassLoaders 和 Memory Leaks 有以下几点:
- Custom
ClassLoader不存储在 Perm 生成中。 - 如果超出范围,自定义
ClassLoader可能会导致内存泄漏ClassLoder,但无论我们是否将ClassLoader对象设置为null. - 如果我们不需要给定的
ClassLoader对象,那么我们应该确保对从加载的类开发的对象的所有引用都应该是null. - 如果加载的任何类
ClassLoader不符合条件,GC则 ClassLoader 将不是GCed.