1、引用计数器
引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器值就减1;任何时刻计数器都为0的对象就是不可能再被使用的。
2、可达性分析算法
从GC Root开始搜索,且搜索不到的对象
跟搜索算法:以一系列名为 GC Root的对象作为起点,从这些节点开始往下搜索,搜索走过的路径称为引用链,当一个对象到GC Roots没有任何引用链的时候,则就证明此对象是不可用的。
java GCRoot有哪些
1、虚拟机栈中的引用的对象
2、方法区中的类静态属性引用的对象
3、方法区中常量引用的对象
4、本地方法栈中jni(Native方法)的引用对象。
原文:https://www.cnblogs.com/stubborn-dude/p/14750235.html