什么是垃圾? 什么是gcRoots, 谈谈你对 强, 软, 弱 , 虚引用的理解, 他们的应用场景 jvm采用可达性分析法: 从gcRoots集合开始,自上向下遍历,凡是在引用链上的对象,都不是垃圾, 不在引用链上的对象就是垃圾,但此时不会马上被回收, 还需要进行二次标记, 第一次标记,判断当前对象是否有finalize()方法,并且该方法没有被执行过, 如果不存在就标记为垃圾, 等待回收, 如果有的话,进行第二次标记,第二次标记将当前对象放入F-Queue队列中, 并生成一个finalize线…