JVM 接上一篇(个人笔记,勿看)

文章目录

上一篇

上一篇:https://blog.youkuaiyun.com/weixin_43896363/article/details/106231392

Java 自动内存管理介绍

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

垃圾回收相关算法概述

  • 可达性分析算法是Java 中真正使用的标记算法
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

引用计数算法的原理以及优缺点

  • 因为 JVM 规范并没有规定方法区的 GC ,而且方法区基本不进行垃圾回收,所以 GC 主要针对 堆
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

可达性分析算法与GC roots

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

对象的finailzation 机制

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 我滴小问题:至少两次标记吗?和 F-Queue 队列里面的对象保持连接的是属于可触及的还是不可触及的呢?

使用 MAT 查看 GC Roots

  • 一个程序有多少个 GC Roots,分别又是什么呢,我们可以通过工具里查看—MAT 和 JProfiler

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

标记清除算法的原理和优缺点

在这里插入图片描述

  • 标记-清除,标记的不是垃圾,而是非垃圾的对象(或者说可达对象)
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

复制算法原理及优缺点

在这里插入图片描述在这里插入图片描述在这里插入图片描述

上图特别的:
复制算法在垃圾对象越多,效率越好,因为需要复制的就少

  • 复制算法用指针碰撞分配内存
  • 标记-清除用空闲列表的方式分配内存
  • 复制算法要维护栈中的引用,因为对象移动了,引用也得变
    在这里插入图片描述
  • 所以前面讲的堆的新生区 GC 用的算法就是复制算法,因为新生区的对象朝生夕死,垃圾很多,存活的对象少,用复制算法效率很不错

标记–压缩算法原理及优缺点

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

不同指标上对比三种用法

在这里插入图片描述

分代收集算法说明

在这里插入图片描述在这里插入图片描述在这里插入图片描述

增量收集算法原理及优缺点

在这里插入图片描述在这里插入图片描述

分区算法的说明

  • 主要还是针对G1回收器来说的
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

垃圾回收相关概念的概述

在这里插入图片描述在这里插入图片描述

System.gc() 的理解

  • System.gc() 仅仅是提醒希望虚拟机进行一次垃圾回收,但是虚拟机执行与否与System.gc() 无关
  • 与Runtime.getRuntime.gc() 的作用一样System.gc() 的底层就是他来实现的)
  • System.runFinalization() 方法就会确保虚拟机一定要进行垃圾回收(强制调用失去引用的对象的 finallize 方法)

在这里插入图片描述

内存溢出与内存泄漏

在这里插入图片描述在这里插入图片描述在这里插入图片描述

内存泄漏分析

在这里插入图片描述

  • 宽泛意义上的内存泄漏:比如本该设置成局部变量的,你设置成静态变量,生命的周期就长了

在这里插入图片描述在这里插入图片描述

Stop The Word(STW)事件的理解

在这里插入图片描述在这里插入图片描述

程序的并行与并发

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

垃圾回收的并行与并发

在这里插入图片描述在这里插入图片描述

安全点与安全区域

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Java 中几种不同引用的概述

在这里插入图片描述在这里插入图片描述

强引用:不回收

在这里插入图片描述在这里插入图片描述在这里插入图片描述

软引用–内存不足即回收

在这里插入图片描述在这里插入图片描述

  • 在第二行代码执行完之后既有强引用,也有软引用,obj=null 之后就只剩下软引用
  • 不一定是报 OOM 异常的时候回收,内存感到紧张的时候可能就回收了

弱引用 – 发现即回收

在这里插入图片描述在这里插入图片描述

虚引用–对象回收跟踪

在这里插入图片描述
在这里插入图片描述

终结器引用的介绍

在这里插入图片描述

垃圾回收章节概述

在这里插入图片描述在这里插入图片描述

垃圾回收器的分类

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

GC 性能指标的整体说明

在这里插入图片描述在这里插入图片描述

  • 吞吐量和暂停时间也是后面 JVM 调优重点关注的指标

吞吐量与暂停时间的对比说明

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

垃圾回收器的发展迭代史

在这里插入图片描述

  • 不同的垃圾收集器和具体的JVM是相关联的,不同的厂商,会提供不同版本的JVM,不同版本的JVM 就可以使用不同版本的垃圾回收器

在这里插入图片描述在这里插入图片描述在这里插入图片描述

垃圾回收器的组合关系

在这里插入图片描述

  • CMS 和 MSC 相连,是因为 CMS 是并发的,把 MSC 作为一种后备方案
  • 红色的线是 jdk 8 以前的,青色的是 jdk 14 之前的
  • Parallel Scavenge 和其他的垃圾回收器用的框架不一样,所以有的没有连线,因为不能兼容
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

如何查看默认的垃圾收集器

  • JDK9 中 G1 变成默认垃圾收集器
    在这里插入图片描述

Serial 与 Serial Old 垃圾回收器介绍

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

ParNew 回收器:并行回收

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Parallel 与 Parallel Old 垃圾回收器介绍

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Parallel 相关参数设置

在这里插入图片描述在这里插入图片描述在这里插入图片描述

CMS垃圾回收器概述与工作原理

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

认识 G1 垃圾回收器

在这里插入图片描述在这里插入图片描述在这里插入图片描述

G1 回收器的优势和不足

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

G1 参数设置

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

region 的使用介绍

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

G1 垃圾回收器的主要环节

在这里插入图片描述在这里插入图片描述在这里插入图片描述

记忆集与写屏障

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 记忆集记忆了哪些引用指向他,比如,reset2 记录了 Regin1 和 Regin2 指向他

G1 垃圾回收过程的详细说明

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

G1 垃圾回收的优化建议

在这里插入图片描述在这里插入图片描述

7种经典的回收器总结与调优建议

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

常用的显示 GC 日志的参数

在这里插入图片描述在这里插入图片描述在这里插入图片描述

GC 日志中垃圾回收数据分析

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

G1 和 ZGC 垃圾回收器剖析

Java8 的默认垃圾收集器:Parallel Scavenge + Parallel Old

JVM 性能调优

何为调优?
1、根据项目需求进行 JVM 规划和预调优:比如选择多大的服务器
2、优化运行程序中导致的卡顿问题:比如频繁发生 Full GC,可以适当把新生代调大一点
3、解决 JVM 运行过程中出现的各种问题(内存溢出等等)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值