面试题——JVM老年代空间担保机制(我的想法)

这里借用一下人家的图,来说一下我的想法,嘻嘻。。。。

原文链接:一道面试题:JVM老年代空间担保机制-CSDN博客?

嗯,我觉得老年代担保机制的主要作用就是避免频繁触发FULL GC ,这其实也是因为年轻代Minor GC后存活对象大小的不确定性而造成的,整体流程就是当准备Minor GC时,老年代会先提前预估一下,往最坏了想,如果这次年轻代GC后,所有对象都存活下来并且还全都要进入老年代,那我能不能承受住呢,如果行,那么正常执行Minor GC即可,但如果不行,老年代就要判断一下了,参考以往的多次Minor GC后进入老年代对象的大小平均值,如果现在老年代可用空间小于平均值,则直接执行Full GC,但如果现在老年代可用的空间大于平均值,则还是硬着头皮执行Minor GC,如果执行了Minor GC后,老年区的剩余空间是够用的,则一切安好,如果硬着头皮执行Minor GC后,剩余空间是不够的,则还是会执行Full GC。

这就是老年代空间担保的过程,是新生代对象向老年代空间进行担保,看我Moinor GC后,进入老年代对象的总大小,你老年代能不能装的下。

而且老年代的空间担保机制是默认开启的。

相关推荐
AOwhisky23 分钟前
Redis 学习笔记(第一期):概述、安装配置与核心理论
运维·数据库·redis·笔记·学习·云计算
小熊美家熊猫系统28 分钟前
电子合同技术实现与合规实践
java·开发语言·分布式
云烟成雨TD28 分钟前
Agent Scope Java 2.x 系列【3】从零构建 ReActAgent
java·人工智能·agent
智者知已应修善业35 分钟前
【51单片机8位数码管同时倒计时从9999】2024-1-25
c++·经验分享·笔记·算法·51单片机
一只叫煤球的猫37 分钟前
ThreadForge 源码解读二:一个 Task 从 submit 到完成,内部到底发生了什么?
java·后端·面试
AOwhisky1 小时前
Redis 学习笔记(第四期):高可用与集群(哨兵 + Cluster + 容器化)
linux·运维·数据库·redis·笔记·学习·缓存
阿狸猿1 小时前
论微服务架构及其应用
java·微服务·架构
南极企鹅1 小时前
JVM-编译执行过程
jvm
2501_938176882 小时前
924期权赚了2000倍真的吗?
笔记