了解JVM中的GC
Posted XeonYu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解JVM中的GC相关的知识,希望对你有一定的参考价值。
上一篇:
了解 JVM和JVM内存结构(JVM运行时数据区)
上一篇博客我们对JVM的内存结构有了一个简单的认识,我们都知道Java是有GC自动对内存进行回收的,那GC到底是怎么工作的,对象在什么时候会被回收呢?
本篇博客我们就来了解一下GC;
GC
Garbage Collector :垃圾收集器
顾名思义,就是专门收集垃圾的。
什么是垃圾
简单来讲,没有任何引用指向的对象(没有任何用处的对象),就是垃圾,要被回收掉。
怎么判断一个对象是不是垃圾
引用计数器法
简单将就是一个对象每被另一个对象所引用,则计数器+1,解除引用后-1,如果一个对象的引用计数器为0,则视为垃圾。
根可达性分析法
根:又叫做 GC roots
先来看看JVM内存模型中哪些属于GC roots
- 虚拟机栈
- 本地方法
- 常量池
- 方法区中的静态变量等
通过GC roots 根节点一直往下找,能找到的引用的对象都不是垃圾,其他的就都是垃圾。
如图所示:
以上是关于了解JVM中的GC的主要内容,如果未能解决你的问题,请参考以下文章