GC(gabge cllection)---Java 垃圾回收机制
GC(gabge cllection),垃圾回收机制 顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略来进行回收(释放空间)?GC(gabge cllection)是在什么时候?对什么东西,做了什么事情?”我们从下面几个方向来进行了解:
(1)定义
(2)GC发生在什么时候?(3)收集的机制
(4)GC对什么东西进行收集?
(5)GC都做了些什么?
1,定义:
GC是强制立即收集垃圾,释放内存---java 内存管理包括分配和释放
2,GC发生在什么时候?
A,系统空闲时候B,系统自身决定,不可预测的时间,调用System.gc()的时候
3,收集的机制:
A, minor GC新生代垃圾收集动作,非常频繁,速度也快。发生条件:分配率越高minor GC执行的越高,enden 满了发生minor gc,
B, full /Major GC: 老年代代码的GC,有major GC,至少又一次minor GC,速度比minor GC慢。
4,对什么东西进行收集?
(1)一些不使用的对象
(2)超出作用域的对象,引用计数为空的对象(3)从gcroot开始搜索,搜不到对象
(4)从root搜不到,经过第一次标记清理之后,还么有复活对象
5,GC做什么?
(1)删除不使用对象,腾出空间
(2)补充一下停止其他线程的执行、运行finalize等的说明。
(3)minor GC 是复制清理,from survivor, to surivor, full GC是标记清理,标记清理之后要整理、复制清理和标记清理优势快速。