欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GC

程序员文章站 2022-05-06 16:51:30
...

1、基本原理

Java的内存管理实际就是对象的管理,其中包括对像的分配和释放。对于程序员来说,分配对象使用new关键字,释放对象时只是将对象赋值为null,让程序员不能够再访问到这个对象,该对象被称为“不可达”。

对于GC来说,当程序员创建对象时,GC就开始监控这个对象地址、大小以及使用情况。通常GC采用有向图的方式记录并管理堆中的所有对象,通过这种方式确定哪些对象是“可达”的,哪些对象是“不可达”的。当GC确定一些对象为“不可达时”GC就有责任回收这些内存空间,

2、GC执行的时机

1)程序调用System.gc()

调用System.gc时,系统建议执行Full GC,但是不必然执行

2)系统自身决定:

当Eden区满时,触发Minor GC;
当Old Generation区满时,执行Full GC;
Method Area内存不足的时,执行Full GC。

3、GC执行的方法

Eden:复制-清理
Old Generation:标记-清除、标记-压缩

相关标签: GC