方法区回收过程与GC的并发与并行

主要回收废弃常量和无用的类
废弃常量包括字面量、类或接口、方法、字段的符号引用等
废弃指的是没有任何地方引用这个常量。
无用的类
满足的三个条件:
1。没有该类的任何实例存在
2。加载该类的ClassLoader已经被回收
3。该类对应的java.lang.Class对象没有任何地方被引用,无法在任何地方通过反射反问该类的方法。
而当满足这三个条件时,虚拟机仅仅是“可以”对这个类进行回收,而不是像对象一样,不使用了就必然回收。此时可以通过虚拟机参数-Xnoclassgc参数进行控制。
虚拟机中GC中的并行与并发
并行:多个垃圾线程同时并行执行,用户线程处于等待状态;
并发:垃圾收集线程和用户线程同时执行,不一定是并行执行,可能是交叉执行,用户程序继续运行,而垃圾收集程序运行那个在另一个CPU上
原文地址:https://www.cnblogs.com/daichangya/p/12958877.html