关闭

JVM如何确定垃圾

别叨叨 1年前 ⋅ 178 阅读
  1. 引用计数法:在Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为0,则说明对象不太可能再被用到,那么这个对象就是可回收的对象。
  2. 可达性分析:为了解决引用计数法的循环引用问题,Java使用了可达性分析的方法。通过一系列的GC roots对象作为起点搜索。如果在GC roots和一个对象之间没有可达路径,则称该对象是不可达的。要注意的是,不可达对象不等于可回收对象,不可达对象变为可回收对象至少要经过两次标记才可以回收。

全部评论: 0

    我有话说: