https://blog.csdn.net/ooppookid/article/details/51523853

1、什么是老生代的标记算法

了解堆内存看这里:java堆内存是什么样的
了解java垃圾回收看这里:java垃圾回收机制是什么
所谓标记算法(Mark),分为多种,最简单直观的即标记-清除算法(Mark-Sweep)。即将认定为可回收的内存做一个标记,然后统一将被标记的清理,算法图解如下:

算法过程:
1. 先判定对象是否可回收,对其标记。
2. 统一回收(简单地删除对垃圾对象的内存引用)。

标记-清除算法十分简单直观,且容易实现和理解。但是有一个很严重的问题,内存空间碎片化,这显然是不能接收的,所以Java对老生代的垃圾处理采用的是标记-紧凑算法。

2、什么是老生代的标记-紧凑算法

所谓标记-紧凑算法(Mark-Compact),即在标记-清除算法的基础上,增加了碎片整理这一步,算法图解如下:

算法过程:

  1. 标记:标记可回收对象(垃圾对象)和存活对象。
  2. 紧凑(也称“整理”):将所有存活对象向内存开始部位移动,称为内存紧凑(相当于碎片整理)。
  3. 清理剩余内存空间。

可以看出,内存的碎片整理虽然会损失一定的效率,但是大大减少了内存的碎片化程度,更有利于内存的使用和分配。

什么是老生代的标记算法相关推荐

  1. 【JVM】四种GC算法(分代收集+三种标记算法)

    目录 参考文章 四种GC算法 分代收集算法(理论) 标记清除算法 标记整理算法 标记复制算法 三种算法的优缺点 参考文章 JVM的4种垃圾回收算法.垃圾回收机制与总结_我是guyue,guyue就是我 ...

  2. JVM 新生代老生代

    堆大小 = 新生代 + 老年代.默认下,新生代 ( Young ) = 1/3 的堆空间大小,老年代 ( Old ) = 2/3 的堆空间大小: 新生代 ( Young ) 被细分为 Eden 和 两 ...

  3. Java新生代 与老生代

    堆大小 = 新生代 + 老年代.默认下,新生代 ( Young ) = 1/3 的堆空间大小,老年代 ( Old ) = 2/3 的堆空间大小: 新生代 ( Young ) 被细分为 Eden 和 两 ...

  4. 闲谈JVM(二):浅析新老生代参数配置

    文章目录 前言 Heap区新老生代 新生代参数配置 NewSize MaxNewSize Xmn NewRatio SurvivorRatio 新生代的GC 老生代参数配置 对象何时进入老生代? 老生 ...

  5. 新生代、老生代垃圾收集器总结

    1. 新生代回收器:Serial(单线程).ParNew(Serial收集器的多线程版本).Parallel Scavenge(新生代并行收集器,追求最大吞吐量): 2. 老年代回收器:Serial ...

  6. Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collector

    文章目录 GC的优缺点 引用的四种类型 对象标记算法 引用计数法 可达性分析法 回收算法 标记-清除算法(Mark-Sweep) 复制算法 标记-整理算法(Mark-Compact) 分代收集算法 常 ...

  7. 再谈GC1:GC简介,分代与回收算法

    说明:在本文中, Garbage Collection 翻译为 "垃圾收集", garbage collector 翻译为 "垃圾收集器";一般认为, 垃圾回收 ...

  8. 堆及新生代老生代(学习笔记)

    来自颜群老师的JVM课程 小结 新生代特点 大部分对象都存在新生代 新生代的回收频率高,效率高 老生代特点 空间大,增长速度慢 垃圾回收频率低 划分新老生代的意义 可以根据项目中对象大小的数量,设置新 ...

  9. jvm_2_新生代老生代含义

    题眼: JVM使用的是分代垃圾回收的方式,可以将Java对象分为"年轻"对象和"年老"对象. JVM将内存堆(Heap)分为两个区域,一个是"年轻&q ...

最新文章

  1. 华为,再牵手一流大学
  2. Nginx —— configure的命令参数(nginx编译选项)
  3. Android逆向基础----Android Dalvik虚拟机
  4. 学习C#以及C还有数据库
  5. ubuntu出现HWE问题
  6. [C#.NET 拾遗补漏]14:使用结构体实现共用体
  7. boost库中mutex、condition_variable与mutex::scoped_lock联合使用实现线程之间的通信
  8. Android权限管理原理,Android手机Root授权原理细节全解析
  9. 若依集成knife4j实现swagger文档增强
  10. Java优先队列 Priority Queue
  11. docker从C盘迁移到E盘
  12. ppt倒计时3分钟_老板发来200页PPT文件,让我翻译成英文,3分钟教你搞定
  13. 直线检测原理matlab,Hough变换 直线检测原理及其Matlab实现
  14. 使用PDFObject添加将本地磁盘pdf文件在前端页面展示
  15. Java正则表达式工具类(持续更新)
  16. 2021年美容师(初级)报名考试及美容师(初级)最新解析
  17. 简单聊聊什么是Sass、Pass和Iass?
  18. FIPS 140-3与140-2的差异-2
  19. 淘宝移动转型复盘:技术扮演重要角色
  20. echart 热搜词云(字符云)的制作以及遇到颜色不会随即变得bug

热门文章

  1. 痞子衡嵌入式:对比恩智浦全系列MCU(包含Kinetis/LPC/i.MXRT/MCX)的GPIO电平中断设计差异...
  2. c#被指定为此窗体的 MdiParent 的窗体不是 MdiContainer
  3. unity技术补全计划
  4. [野狐行网游研究][二期][8.21更新]
  5. 应届生面试紧张试试这几个方法
  6. win xp32位系统安装mysql详细步骤
  7. 【TarDAL红外与可见光图像融合论文笔记】
  8. Stata:DID入门教程
  9. -bash: /home/alex: 是一个目录
  10. NLTK(3)处理文本、分词、词干提取与词形还原