面试题——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后,进入老年代对象的总大小,你老年代能不能装的下。

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

相关推荐
杨二K2 分钟前
认识HertzBeat的第一天
java·hertzbeat
DevilSeagull6 分钟前
JavaScript WebAPI 指南
java·开发语言·javascript·html·ecmascript·html5
期待のcode2 小时前
Spring框架1—Spring的IOC核心技术1
java·后端·spring·架构
葵野寺2 小时前
【RelayMQ】基于 Java 实现轻量级消息队列(七)
java·开发语言·网络·rabbitmq·java-rabbitmq
书院门前细致的苹果2 小时前
JVM 全面详解:深入理解 Java 的核心运行机制
java·jvm
上官浩仁3 小时前
springboot excel 表格入门与实战
java·spring boot·excel
Hello.Reader3 小时前
从零到一上手 Protocol Buffers用 C# 打造可演进的通讯录
java·linux·c#
树码小子4 小时前
Java网络初识(4):网络数据通信的基本流程 -- 封装
java·网络
稻草人想看远方4 小时前
GC垃圾回收
java·开发语言·jvm
lingggggaaaa4 小时前
小迪安全v2023学习笔记(八十一讲)—— 框架安全&ThinkPHP&Laravel&Struts2&SpringBoot&CVE复现
笔记·学习·struts·安全·网络安全·laravel