java-GC-可达性分析算法

根集合必须是一组活跃的引用

可达新分析算法是:以根对象为起点,由上置下 搜索被根对象所连接的对象是否可达

存活的对象是被根对象直接或者间接的连接着 组成引用链

如果对象没有任何引用链连接 说明这个对象是可以被回收的

GC ROOTS所包含的对象

1. 栈中所引用的对象

2. 类中的静态变量

3. 字符串常量池中的引用

4. 本地方法栈引用的对象

5. synchronized持有的锁对象

6. 基本数据类型所对应的Class对象

7. 常驻的异常对象

8. 类加载器对象

在对象被回收之前会回调finalize()方法 运行在子类中重写

之后被调用一次,第一次执行完之后 再GC也不会调用这个方法

由优先级比较低的一个子线程去执行这个方法

原文地址:https://www.cnblogs.com/isnotnull/p/14761813.html