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

【jvm】新生代和老年代

目录

          • 1. 说明
          • 2. 新生代(Young Generation)
            • 2.1 定义与用途
            • 2.2 内存分配与回收
            • 2.3 特点
          • 3. 老年代(Old Generation)
            • 3.1 定义与用途
            • 3.2 内存分配与回收
            • 3.3 特点

1. 说明
  • 1.在Java虚拟机(JVM)中,新生代(Young Generation)和老年代(Old Generation)是垃圾回收(GC)机制中两个非常重要的概念,它们共同构成了堆内存(Heap)的主要部分。
2. 新生代(Young Generation)
2.1 定义与用途
  • 1.新生代是JVM中用于存放新创建的对象的内存区域。
  • 2.它被进一步划分为Eden区和两个Survivor区(通常为From和To区,有时也称为S0和S1区)。
2.2 内存分配与回收
  • 1.新创建的对象首先被分配到Eden区。
  • 2.当Eden区满时,会触发Minor GC(小型垃圾回收),将存活的对象转移到Survivor区中的一个(通常是Survivor From区)。
  • 3.在下一次Minor GC时,存活的对象会从当前的Survivor区移动到另一个Survivor区(Survivor To区),并清空原来的Survivor区。
  • 4.对象在Survivor区中的存活次数(称为年龄)达到某个阈值(默认是15)时,会被晋升到老年代。
2.3 特点
  • 1.新生代的空间相对较小,用于快速回收大量短命对象。
  • 2.Minor GC的频率较高,但回收效率也很高。
  • 3.绝大部分的Java对象的销毁都在新生代进行。
  • 4.IBM公司的专门研究表明,新生代中80%的对象都是朝生夕死的。
3. 老年代(Old Generation)
3.1 定义与用途
  • 1.老年代是JVM中用于存放长时间存活的对象的内存区域。
  • 2.当对象经过多次Minor GC仍然存活,或者对象太大无法直接放入新生代时,它们会被晋升到老年代。
3.2 内存分配与回收
  • 1.老年代的空间较大,用于存放存活时间较长的对象。
  • 2.当老年代空间满时,会触发Major GC(大型垃圾回收)或Full GC(全局垃圾回收),这会涉及到整个堆内存的垃圾回收操作。
3.3 特点
  • 1.老年代的空间增长相对较慢,因为大多数对象在新生代中就已经被回收。
  • 2.Major GC的频率较低,但回收耗时较长,因为需要扫描整个老年代。

http://www.mrgr.cn/news/59695.html

相关文章:

  • 用哪种建站程序做谷歌SEO更容易?
  • 自由学习记录(15)
  • Python浪漫之抖动的星星
  • DerpNStink: 1渗透测试
  • 面试时被问到“Scaling Law”,该怎么答?
  • CSS揭秘:7. 伪随机背景
  • 【anki】如何图片遮挡分组
  • 数学建模学习(131):使用Python基于VIKOR算法的多准则决策分析
  • 【原创】红米K40(alioth)解锁BL,安装Magisk获取root权限并安装LSPosed模块
  • 实时操作系统(RTOS)深度解析及Java实现初探
  • windows@快速安装windows系统镜像安装@快速部署windows操作系统
  • Python爬虫-汽车投诉排行榜单数据
  • DiffusionDet: Diffusion Model for Object Detection—用于对象检测的扩散模型论文解析
  • 三菱FX5UPLC 安全功能
  • ‌AI智能批量撰写文章,轻松通过AI检测,站长内容更新必备神器
  • C++学习路线(二十六)
  • ctfshow web入门 web161-165
  • ElasticSearch备考 -- index rollover
  • JAVA模仿银行系统要求
  • redis内存打满了怎么办?
  • vscode开发项目常用插件
  • C++11新特性(列表初始化与右值引用折叠与完美转发)
  • #【2024年10月26日更新】植物大战僵尸杂交本V2.6更新内容与下载
  • Python毕业设计选题:基于Django+Vue的图书馆管理系统
  • Docker 实践与应用举例教程:从入门到精通
  • python实现放烟花效果庆祝元旦