引用计数法:
只要一个对象被其他变量所引用,就让这个变量的计数加1,如果某一个变量不再引用,就让他的计数减一。当引用计数变为0。
如果两者互相引用,它们各自的引用计数都是1,就会导致虽然没有任何其他对象对他有引用,它们俩还是不会被回收。jvm没有采用这种算法
可达性分析
就像从盘子中拿起一串葡萄,掉到盘子上的就是要被回收的,而连在葡萄上的就是不被回收的
根对象
- System Class JVM运行的核心类对象
- Native Stack 本地方法所引用的对象
- Thread 活动线程
- 栈帧内引用的对象
- Busy Monitor 正在被加锁的对象