垃圾收集是什么,为什么需要,怎么工作?

答案

1) 垃圾回收是什么

垃圾回收,即Garbage Collection,简称GC。 java实例化对象所使用的内存是堆内存。垃圾回收就是针对堆内存中不再使用的对象进行回收,释放它们所占用的内存。jvm中有一个优先级较低的垃圾回收线程,专门来处理垃圾回收。

2)为什么需要

java 的垃圾回收机制让程序员不用再操心内存管理的问题,可以有效防止内存泄漏。

3) 怎么工作

垃圾回收线程会自动工作,在一些时候(例如堆内存不足时)对那些可回收的对象进行内存释放。

那么哪些对象属于可以被回收的对象呢? 一般都是通过可达性分析算法来判定的。基本思路是检查GC Roots对象与堆内存对象之间是否有一条通过对象之间的引用“可达”的通路,如果没有,则可以判定它们是可以被回收的。

还可以通过System.gc()方法来通知垃圾回收线程进行回收,但垃圾回收线程可以拒绝这个请求,也就是用户代码不能强迫干预垃圾回收的执行

注意 GC Roots 表示正在使用或一直需要使用的对象,例如:方法本地变量所引用的对象,类静态属性引用的对象,或者是老年代的对象等


results matching ""

    No results matching ""