概要
垃圾回收主要针对堆和方法区,程序计数器、栈、本地方法栈这三个属于线程私有,线程结束即消失。
引用计数算法
当对象添加一个引用时,计数器加1,引用是失效时,计数器减1。缺点:两个对象循环引用时,计数器永不为0.
可达性分析算法
以GC Roots为起始点进行收搜,可达的对象都是存活的,不可达的对象可被回收。GC Roots包含:
- 栈中局部表中的引用对象
- 本地方法栈中JNI中引用对象
- 方法区中静态变量引用对象
- 方法区中常量引用对象
垃圾回收主要针对堆和方法区,程序计数器、栈、本地方法栈这三个属于线程私有,线程结束即消失。
当对象添加一个引用时,计数器加1,引用是失效时,计数器减1。缺点:两个对象循环引用时,计数器永不为0.
以GC Roots为起始点进行收搜,可达的对象都是存活的,不可达的对象可被回收。GC Roots包含: