ClassLoader
s 存储在永久代内存中。并且正如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
.