字节码执行引擎发起minorGC和
堆区分为年轻代(1/3大小)和老年代(2/3大小)
年轻代分为:Eden区(8/10),survivor0区(1/10),survivor1区(1/10)
GC的判断方:从方法区去找静态变量,从栈区找局部变量,看到有引用的为非垃圾对象
minorGC:
数据首先放在eden区,放满后触发minor gc,把非垃圾对象放入s0区,其他对象释放。
每经历一次gc未被释放,数据分代年龄+1。
下一次eden区放满,会同时清理eden区和s0区的数据,将有引用的放入s1区,数据年龄+1
数据在eden区+s0以及eden区+s1区来回切换
在年轻代年龄达到15(可调参数)之后会移步到老年代,(用jvisualvm可以看到gc过程)
fullGC:
老年区满之后回触发fullGC,会回收整个堆和方法区。
OOM:
如果fullGC没有释放出对象,则会开始
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。