Jvm的垃圾回收策略

Jvm中垃圾回收主要是针对于堆区和方法区
 
堆结构
堆中的垃圾回收策略:
1.new出来的对象,一开始是存放在年轻代(Young generation)的Eden区,等到Eden区空间饱和时,会进行一次Minor GC,对Eden区的对象进行一次清理,无法清理的对象移至From区,循环进行上述操作
2.From区空间饱和时,也会触发一次Minor GC,对From区的对象进行清理,再将无法清理的对象移至To区,From区与To区身份来回转换,进行15次Minor GC之后,还无法清理的对象,最终移至Old Generation(老年代中)
3.老年代中空间饱和时,系统会进行一Full GC,对老年代中的对象进行清理,如果清理之后,还是空间饱和,那么就会抛出OutOfMemoryError的异常,终止java程序的运行
 
方法区中的垃圾回收策略:
方法区在空间饱和时,也会对方法区中的类元信息,常量池等数据进行Major GC,对没有对象引用到的类元信息进行清理

posted on 2019-07-06 15:14  妈妈的力量  阅读(317)  评论(0编辑  收藏  举报

导航