编程语言
首页 > 编程语言> > Java垃圾分代回收机制

Java垃圾分代回收机制

作者:互联网

Java垃圾分代回收机制


栈-->代码的执行,用完就立即清除
堆-->无用对象在某个时间段进行回收
方法区-->类的信息

在程序刚启动时,会有GC(Garbage Collector 垃圾回收器)自动检测内存的使用情况,一旦发现堆内存的使用率超过 0.7 就会通知系统进行垃圾回收。

新生代.伊甸园区-----幸存区-----老生代

新创建的对象会放在新生代的伊甸园区中,进行扫描,如果没有在使用就会通知GC进行回收,
如果还在使用就会挪到幸存区,扫描多次,如果没有在使用就会通知GC进行回收,
如果还在使用就会挪到老生代,接着扫描,扫描频率比幸存区低,如果没有在使用就会通知GC进行回收,
如果还在使用就继续放在老生代。

初代回收-->针对的是新生代
完全回收-->针对的是整个区域

如果新对象很大,伊甸园区放不下!
如果伊甸园区放不下,就会进行第一次初代回收,
如果存放失败,就会进行第二次初代回收,
如果存放失败,就会进行第一次完全回收,
回收结束后,接着往新生代存,
如果存放失败,就会进行第二次完全回收,
接着再往新生代存,
如果还是失败,就会报错-OutofMemory Error 内存溢出错误。

标签:Java,新生代,回收,分代,GC,垃圾,如果,伊甸园,进行
来源: https://blog.csdn.net/qq_44807835/article/details/100281974