Java虚拟机(JVM)-- GC概述 & GC四大算法之引用计数法

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java虚拟机(JVM)-- GC概述 & GC四大算法之引用计数法相关的知识,希望对你有一定的参考价值。

1. GC概述

  • GC,垃圾回收,JVM启动的时候除了启动进程-主线程,还有就是GC守护线程(一个JVM实例一个进程一个GC线程),它负责特定时间(运行期间某时刻触发,触发之后会根据相应的触发条件选择相应的算法清除对应空间里面的对象)对JVM内存区中的堆(包括方法区(非堆))的对象进行回收释放,是JVM对Java内存对象的一套管理机制,Java程序员不需要关心内存的分配以及回收的问题,这一切都由JVM来管理,而内存的回收则是由GC来完成。

回顾一下 GC 的作用域:



GC算法总体概述:

先看下一个对象的历程:


2. 引用计数法

  • 每个对象有一个引用计数器,当对象被引用一次则计数器加1,当对象引用失效一次,则计数器减1,对于计数器为0的对象意味着是垃圾对象,可以被GC回收。
  • 目前虚拟机基本都是采用可达性算法,从GC Roots 作为起点开始搜索,那么整个连通图中的对象边都是活对象,对于GC Roots 无法到达的对象变成了垃圾回收对象,随时可被GC回收。


以上是关于Java虚拟机(JVM)-- GC概述 & GC四大算法之引用计数法的主要内容,如果未能解决你的问题,请参考以下文章

深入JVM虚拟机 Java GC收集器

Java 虚拟机原理垃圾回收算法 ( 设置 JVM 命令参数输出 GC 日志 | GC 日志输出示例 | GC 日志分析 )

《Java虚拟机》必知必会的 14 个问题总结(内存模型+GC)

JVM常用虚拟机命令汇总

JVM内存管理&GC

Java虚拟机(JVM)与垃圾回收机制(GC)的详解