当前位置:网站首页>⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程?

⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程?

2022-07-07 12:42:00 51CTO

⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程?_老年代

  • 对象申请空间
  • 判断Eden区是否有可分配对象空间,如果Eden区可分配,则直接分配空间
  • 空间不足则进行YGC,针对YGC后还存活的对象,YGC操作细节如下:
    • 判断Survivor区是否可分配空间,可分配,则从from到to区(S0/S1来回切换),阈值 + 1
    • Survivor区不可分配,则直接晋升为老年代
    • 判断Survivor区对象阈值是否大于15,大于则晋升为老年代,否则从from到to区,阈值 + 1
  • YGC后再判断Eden区是否有可分配对象空间,是则直接分配空间,否则判断老年区是否可分配空间
  • 老年区可分配,则申请对象空间,不可分配则进行FGC
  • 再判断老年区是否可分配,可分配,则申请对象空间,不可分配则报错OOM(Out Of Memory)
原网站

版权声明
本文为[51CTO]所创,转载请带上原文链接,感谢
https://blog.51cto.com/learningfish/5449216