3

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

 1 year ago
source link: https://blog.51cto.com/learningfish/5449216
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

原创

爱学习的大鱼 2022-07-07 08:34:13 博主文章分类:Java ©著作权

文章标签 可分配空间 老年代 文章分类 Java 编程语言 yyds干货盘点 阅读数169

⼀个对象从加载到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)
  • 打赏
  • 1
  • 收藏
  • 评论
  • 分享
  • 举报

上一篇:什么是RDB和AOF


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK