JVM--JVM回收机制图解整理

简介: - 新生的对象直接分配到->新生代(Eden)- S0是我们的Eden区出现无法存储某些对象的时候或者存储满了只有,整理Eden区就会存放到S0- S1和S0的作用是一样的,但是他是针对S0的- 当我们对象经历过15次GC之后,他就会被移入老年区(Old)

堆分为:新生代、老年代、S0、S1

在这里插入图片描述

新生代分配比率 Eden:S0:S1 == 8:1:1

对象的产生怎么分配区域

  • 新生的对象直接分配到->新生代(Eden)
  • S0是我们的Eden区出现无法存储某些对象的时候或者存储满了只有,整理Eden区就会存放到S0
  • S1和S0的作用是一样的,但是他是针对S0的
  • 当我们对象经历过15次GC之后,他就会被移入老年区(Old)
15次GC就被认为认定为老年区对象了。

回收算法有哪些?

  • 标记回收
  • 标记整理
  • 复制清除

标记清除

在这里插入图片描述

  • 优势:清除算法的优点,算法简单,实现容易了。
  • 缺点:使用过程中会逐渐产生被细化的分块,不久后就会导致无数的 小分块散布在堆的各处,导致后续对象的分配空间不规整。

标记整理

在这里插入图片描述

  • 优势:能够有效的解决内存碎片问题
  • 缺点:整理阶段,由于移动了可用对象,需要去更新引用。实现相对困难,而且对于内存消耗也会更高

复制清除算法

在这里插入图片描述

  • 优势:吞吐量大、不会产生碎片问题
  • 缺点:内存空间的浪费,GC成本增加

堆分区都用那些对应的回收算法

  • 新生代->使用复制回收算法
  • 老年代->使用标记整理算法
目录
相关文章
|
2月前
|
存储 缓存 Java
金石原创 |【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系机制(1)
金石原创 |【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系机制(1)
51 1
|
2月前
|
存储 监控 算法
垃圾回收器、垃圾回收算法、空间分配担保、JVM调优、GC回收对象的过程
垃圾回收器、垃圾回收算法、空间分配担保、JVM调优、GC回收对象的过程
|
2月前
|
Java 关系型数据库 MySQL
【JVM】JDBC案例打破双亲委派机制
【JVM】JDBC案例打破双亲委派机制
28 4
|
4天前
|
存储 算法 Java
技术笔记:JVM的垃圾回收机制总结(垃圾收集、回收算法、垃圾回收器)
技术笔记:JVM的垃圾回收机制总结(垃圾收集、回收算法、垃圾回收器)
|
14天前
|
算法 Java
Java垃圾回收(Garbage Collection,GC)是Java虚拟机(JVM)的一种自动内存管理机制,用于在运行时自动回收不再使用的对象所占的内存空间
【6月更文挑战第18天】Java的GC自动回收内存,包括标记清除(产生碎片)、复制(效率低)、标记整理(兼顾连续性与效率)和分代收集(区分新生代和老年代,用不同算法优化)等策略。现代JVM通常采用分代收集,以平衡性能和内存利用率。
38 3
|
5天前
|
安全 前端开发 Java
《JVM由浅入深学习【一】 》JVM由简入深学习提升(类加载过程+父子类加载过程+类加载器+双亲委派机制)
《JVM由浅入深学习【一】 》JVM由简入深学习提升(类加载过程+父子类加载过程+类加载器+双亲委派机制)
8 0
|
6天前
|
存储 算法 安全
JVM-内存划分-垃圾回收器-回收算法-双亲委派-三色标记
JVM-内存划分-垃圾回收器-回收算法-双亲委派-三色标记
|
6天前
|
存储 缓存 算法
JVM对象创建与内存分配机制
该类对应的java.lang.Class 对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。
12 0
|
2月前
|
Java
【JVM】双亲委派机制、打破双亲委派机制
【JVM】双亲委派机制、打破双亲委派机制
23 1
|
15天前
|
存储 Java 关系型数据库
实时计算 Flink版操作报错合集之JVM Metaspace不回收并在任务取消后仍然持续增长直至耗尽,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。