Java入门系列垃圾回收

Posted 过向往的生活

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java入门系列垃圾回收相关的知识,希望对你有一定的参考价值。

垃圾回收

如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。

垃圾回收其实做了两件事:1、发现无用的对象;2、回收无用对象占用的内存空间。

垃圾回收算法

1、应用计数法

对象中添加一个引用计数器,每当一个地方引用这个对象时,计数器值+1;当引用失效时,计数器值-1。任何时刻计数值为0的对象就是不可能再被使用的。这种算法使用场景很多,但是,Java中却没有使用这种算法,因为这种算法很难解决对象之间相互引用的情况。

2、应用可达法

通过一系列称为“GC Roots”的对象作为起始点,从这些节点向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链(即GC Roots到对象不可达)时,则证明此对象是不可用的。

分代垃圾回收

 

以上是关于Java入门系列垃圾回收的主要内容,如果未能解决你的问题,请参考以下文章

JVM系列第9讲:JVM垃圾回收器

Java GC(垃圾回收)机制知识总结

Java的垃圾回收机制详解——从入门到出土,学不会接着来砍我!

Java的垃圾回收机制详解——从入门到出土,学不会接着来砍我!

JVM系列 - JVM垃圾回收器

JVM系列第8讲:JVM 垃圾回收机制