JVM之垃圾回收

Posted ysh001

tags:

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

1.哪些内存需要回收?判断对象已死的方法

  1.引用计数算法:难以解决对象之间相互循环引用的问题,不使用。

  2.可达性分析算法:通过一系列“GC Root”对象作为起始点向下搜索,所走过的路径称为引用链。如果一个对象到GC root没有任何引用链连接,则会被判定为可回收的,

           但此时对象还有一次自救的机会,即调用finalize()方法(没啥卵用,可以不学)。如果没有自救则被回收

2.垃圾回收算法

  1.标记清除算法:效率不高;空间碎片太多浪费内存。

  2.复制算法:当一块内存用完时,将活着的对象复制到另一块内存上,将第一块内容清楚。缺点:对象存活率较高时,进行较多复制操作,效率会变低,且需要浪费50%的空间。

  3.标记整理算法:将存活的对象向一端移动,直接清除边界以外的对象。

  4.分代收集算法:新生代中对象存活率较低,采用复制算法,老年代中对象存活率高,采用标记整理算法 

  

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

JVM之G1垃圾回收器

JVM之垃圾回收机制

JVM之垃圾回收机制

JVM系列之经典垃圾回收器(上篇)

垃圾回收开篇之作,带你走进 JVM 垃圾回收机制

深入探究JVM之垃圾回收器