Java垃圾分代回收机制
作者:互联网
Java垃圾分代回收机制
栈-->代码的执行,用完就立即清除
堆-->无用对象在某个时间段进行回收
方法区-->类的信息
在程序刚启动时,会有GC(Garbage Collector 垃圾回收器)自动检测内存的使用情况,一旦发现堆内存的使用率超过 0.7 就会通知系统进行垃圾回收。
新生代.伊甸园区-----幸存区-----老生代
新创建的对象会放在新生代的伊甸园区中,进行扫描,如果没有在使用就会通知GC进行回收,
如果还在使用就会挪到幸存区,扫描多次,如果没有在使用就会通知GC进行回收,
如果还在使用就会挪到老生代,接着扫描,扫描频率比幸存区低,如果没有在使用就会通知GC进行回收,
如果还在使用就继续放在老生代。
初代回收-->针对的是新生代
完全回收-->针对的是整个区域
如果新对象很大,伊甸园区放不下!
如果伊甸园区放不下,就会进行第一次初代回收,
如果存放失败,就会进行第二次初代回收,
如果存放失败,就会进行第一次完全回收,
回收结束后,接着往新生代存,
如果存放失败,就会进行第二次完全回收,
接着再往新生代存,
如果还是失败,就会报错-OutofMemory Error 内存溢出错误。
标签:Java,新生代,回收,分代,GC,垃圾,如果,伊甸园,进行 来源: https://blog.csdn.net/qq_44807835/article/details/100281974