写点什么

JVM 垃圾回收原理简述

用户头像
Season
关注
发布于: 2020 年 08 月 06 日

自动垃圾回收是JVM的重要特性之一,垃圾回收主要包括四个方面:

如何识别对象是可以回收的

Java中主要是通过可达性算法来判断对象是否可以回收,这个算法的基本思路是通过一系列的“GC Root”对象为起点开始往下搜索,所搜索过的路径成为引用链,当一个对象到GC Root没有任何引用链相连时,则证明此对象是可以回收的。

通常作为GC Root的对象有:

  • 栈中应用的对象

  • 方法区中类静态属性应用的对象

如何回收

  • 标记

  • 压缩

  • 复制

回收的空间如何管理

Java采用分代垃圾回收,将对分为年轻代和老年代,年轻代分为Eden、From、To三个区域,年轻代垃圾回收时,将回收后剩下的对象复制到To区,Eden和From标记为空。



用什么样的过程进行回收

  • 串行垃圾回收器(分年轻代和老年代)

  • 并行垃圾回收器(分年轻代和老年代)

  • CMS(老年代)

  • G1



用户头像

Season

关注

还未添加个人签名 2019.09.28 加入

还未添加个人简介

评论

发布
暂无评论
JVM 垃圾回收原理简述