[讨论] 有木有类卸载的经典文章
zhdkn
2012-12-25
如题,找了半天也没有找到类卸载的比较详细的文章。
A class or interface may be unloaded if and only if its class loader is unreachable. The bootstrap class loader is always reachable; as a result, system classes may never be unloaded. |
|
chong_zh
2012-12-25
unloaded即垃圾回收,所有类都会指向其loader,loader会指向所有被其load的类,所以,loader unreachable和类将被回收等价(if and only if)
|
|
zhdkn
2012-12-28
chong_zh 写道 unloaded即垃圾回收,所有类都会指向其loader,loader会指向所有被其load的类,所以,loader unreachable和类将被回收等价(if and only if)
unloaded为啥是垃圾回收,我理解的就是卸载,虽然卸载后的class相关信息也会被回收掉。垃圾回收基本上是来管理对象的生命周期,unloaded卸载是class生命周期的一部分。 |
|
freish
2013-01-06
周志明的《深入理解Java虚拟机》P51对于类的卸载有这样的描述:
类需要同时满足下面3个条件才能算是“无用的类”: □该类所有的实例都已经被回收,也就是Java堆中不存在该类的任何实例。 □加载该类的ClassLoader已经被回收。 □该类对应的java.lang.Class对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。 |