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:标记-清除、标记-压缩
上一篇: 网络编程之socket
下一篇: Java 面试题及其答案