浅谈GC的基本原理

来源:互联网 发布:select linux 编辑:程序博客网 时间:2024/06/06 02:56

Java语言提供的GC功能可以自动的检测对象是否超过作用域,从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法,资源回收工作全部交由GC来完成,程序员不能精确的控制垃圾回收的时机。

Java的内存管理实际上就是对象的管理,其中包括对象的分配和释放。 分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象, 称该对象为不可达的。GC将负责回收所有不可达对象的内存空间。 

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

1 0
原创粉丝点击