根集合必须是一组活跃的引用
可达新分析算法是:以根对象为起点,由上置下 搜索被根对象所连接的对象是否可达
存活的对象是被根对象直接或者间接的连接着 组成引用链
如果对象没有任何引用链连接 说明这个对象是可以被回收的
GC ROOTS所包含的对象
1. 栈中所引用的对象
2. 类中的静态变量
3. 字符串常量池中的引用
4. 本地方法栈引用的对象
5. synchronized持有的锁对象
6. 基本数据类型所对应的Class对象
7. 常驻的异常对象
8. 类加载器对象
在对象被回收之前会回调finalize()方法 运行在子类中重写
之后被调用一次,第一次执行完之后 再GC也不会调用这个方法
由优先级比较低的一个子线程去执行这个方法