Java基础

Java GC机制

2019-10-08  本文已影响0人  pj0579

GC是什么?
垃圾收集 Garbage Collection,很多程序员都遇到过内存溢出的情况,程序运行时,内存空间是有限的,那么如何及时的把不再使用的对象清除将内存释放出来,这就是GC要做的事。
那有几个问题:
1.什么时候GC?
当程序调用System.gc时可以触发。

2.什么对象会被GC?
需要进行回收的对象就是已经没有存活的对象,判断一个对象是否存活常用的有两种办法:引用计数可达分析
引用计数:会导致循环引用。
可达分析
虚拟机栈中引用的对象。
方法区中类静态属性实体引用的对象。
方法区中常量引用的对象。
本地方法栈中JNI引用的对象。

  1. GC过程
    主流JVM采用分代收集GC算法
    将堆(主要的GC集中区)分为 新生代(Young)老年代(Tenure)
    新生代:对象生命周期短,采用复制算法。
    老年代:标记整理GC算法或标记清除GC算法
上一篇下一篇

猜你喜欢

热点阅读