方法区中的常量池也需要进行垃圾回收。主要回收对象是废弃的常量和无用的类。
其中,判断类的存活需要同时满足以下3个条件:
1. 该类所有的实例已经被回收,即Java堆中已经不存在任何该类的实例。
2. 加载该类的ClassLoader已经被回收。
3. 该类对应的java.lang.Class对象没有在任何地方被引用,即无法在任何地方通过反射访问该类的方法。
同时满足这3个条件的类,就是可回收的类。JVM会根据设置进行回收。
方法区中的常量池也需要进行垃圾回收。主要回收对象是废弃的常量和无用的类。
其中,判断类的存活需要同时满足以下3个条件:
1. 该类所有的实例已经被回收,即Java堆中已经不存在任何该类的实例。
2. 加载该类的ClassLoader已经被回收。
3. 该类对应的java.lang.Class对象没有在任何地方被引用,即无法在任何地方通过反射访问该类的方法。
同时满足这3个条件的类,就是可回收的类。JVM会根据设置进行回收。