JVM-垃圾回收(一)
在 JVM 运行时数据区域中,程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。垃圾回收主要是针对 Java 堆和方法区进行。
一、判断对象状态
JVM 在回收一个对象时,首先要判断这个对象的状态,如果判断对象为无效的(没有被任何对象或变量引用),则需要被 JVM 垃圾回收器回收。
1.1 引用计数算法
给对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数不为 0 的对象仍然存活。