当前位置: 首页 > news >正文

什么是 FullGC

一、基础概念


Full GC(全局垃圾回收) 是指 清理整个Java堆内存(包括年轻代和老年代)以及方法区(元空间) 的垃圾回收过程。它是Java虚拟机中最耗时、对应用性能影响最大的一种垃圾回收操作,通常会导致应用程序线程的暂停


二、详细解释


要深入理解 Full GC,我们需要先了解Java内存模型和垃圾回收的基本分代理论


1. Java堆内存的分代


a、年轻代 (Young Generation)


新创建的对象首先被分配在这里。年轻代又分为一个 Eden区两个 Survivor区


Eden区【伊甸园】:新创建的对象绝大部分都分配在这里,当Eden区被填满时,会触发一次 Minor GC【每呢 GC】


Survivor区【幸存者区】:是年轻代的一部分,专门用来存放在一次 Minor GC【每呢 GC】 后仍然存活的对象


b、老年代 (Old Generation)


从年轻代晋升过来的对象:Survivor区【幸存者区】经历了多次 Minor GC【每呢 GC】 后仍然存活的对象


大对象:如果对象非常大(比如很长的数组或字符串),可能会直接分配在老年代(避免在Eden和Survivor区之间进行大量复制)


c、老年代 (Old Generation)


方法区是一个线程共享的内存区域,它存储的是已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据


三、Full GC 的核心触发条件


1. 老年代空间不足(最常见)


具体场景:

  • 年轻代对象晋升:Minor GC【每呢 GC】 后,存活对象需要晋升到老年代,但老年代空间不足

  • 大对象直接分配:大对象(如大数组)直接进入老年代,但空间不足

http://www.zskr.cn/news/12622.html

相关文章:

  • AI智慧的三重跃升:从「数理魔兽」到「悬荡悟空」的文明协作者
  • 新学期每日总结(第 5天)
  • US$45 Scorpio-LK Emulators SLK-01 for Tango Key Programmer including Authorization
  • 再见Playwright!谷歌官方Chrome DevTools MCP正式发布,AI编程效率再翻倍
  • Markdown 之——清单の语法
  • git分支从dev迁移到maser
  • 2025.9.26总结
  • C++ 与现代并发编程:性能与复杂度的平衡艺术
  • 20250736
  • US$638 VVDI2 BMW and OBD Functions Authorization Service
  • lc1037-有效的回旋镖
  • 老系统-新系统的数据迁移
  • excell中完成矩阵的转置相乘
  • Service :微服务通信、负载、故障难题的解决方案 - 指南
  • python+springboot+uniapp基于微信小程序的任务打卡框架
  • SQLserver 通过本地方式改SA密码
  • 2_2025.9.26_2
  • k8s部署Prometheus实战
  • Ubuntu Linux 常用命令
  • 第五篇
  • 网络安全周报:AI监控工具与关键基础设施漏洞警报
  • 9.26总结
  • Ext-js4-扩展开发指南-全-
  • 微信小程序实现流式传输(打字机效果)
  • Git 提交代码前,一定要做的两件事
  • 从0开始使用LabVIEW处理数据采集卡-概述和新建新建工程
  • 用 Excel 快速处理接口返回的 JSON 数据
  • 调度的基本概念
  • 日志| 编辑距离 | 最长有效括号 |
  • UniApp ConnectSocket连接websocket - 详解