天天看点

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

作者:mikechen的互联网架构
JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

JVM现在已经属于Java大厂面试的重灾区,也是必备技能了,建议大家重点掌握。

为了方便大家更好的进阶架构,也为了让知识更系统化,这里我单独把JVM虚拟机的整个系列一并罗列于此,希望能帮助到更多的人@mikechen

完整文档,到文末获得~

JVM内存模型

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

这篇文章主要讲了以下几点:

  • JVM堆;
  • 虚拟机栈;
  • 程序计数器;
  • Java方法区;
  • 本地方法栈;

JVM参数详细配置详解

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

JVM内存参数这篇详解了:

  • 指定JVM的初始内存和最大内存;
  • 设置新生代的内存大小;
  • 启用G1垃圾收集器;
  • .启用CMS垃圾收集器;
  • 打印垃圾收集器的详细信息和时间戳;

上面这篇详解了常用的JVM参数,这些都是实际工作经常使用到的参数。

4种JVM垃圾回收算法详解

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

这篇文章主要讲了以下几点:

  • 标记-清除算法(Mark and Sweep Algorithm);
  • 复制算法(Copying Algorithm);
  • 标记-压缩算法(Mark and Compact Algorithm)
  • 分代收集算法(Generational Collection Algorithm);

以上是JVM中的四种垃圾回收算法,上面有详细的图文详解。

7种JVM垃圾收集器特点,优劣势、及使用场景

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

这篇文章主要讲了以下几点:

1.Serial串行收集器;

2.ParNew收集器;

3.Parallel Scavenge并行回收收集器;

4.CMS收集器-标记清除算法;

5.G1收集器;

6.G1收集器运作步骤等等;

这篇不仅把垃圾收集器分类了,还把分类单独详解了。

JVM性能调优的6大步骤详解

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

这篇文章主要讲了以下几点:

  • 确认性能指标和问题;
  • JVM性能调优方法和步骤;
  • 分析GC日志;
  • 选择合适的垃圾收集器;
  • 调整垃圾收集器参数;
  • 优化代码;

通过这篇的详解,可以很清楚知道如何做性能调优,这也是大厂经常面试的。

4大JVM性能分析工具详解

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

上一篇谈了JVM性能调优步骤,这篇给大家推荐JVM调优工具。

主要详解了:

  • VisualVM:是一个功能强大的分析工具,支持多种插件和扩展;
  • JConsole :是一个 JMX 客户端,可以监视 JVM 中的 MBean 和监控线程、内存和 CPU 使用情况等信息
  • MAT:MAT 基于 Eclipse 平台开发,可以导入堆转储文件进行分析;

除了详解JVM调优工具之外,还谈了JVM内存泄漏分析。

Minor GC、Major GC、Full GC的区别

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

这些常见的GC还是要掌握的,这篇文章主要讲了以下几点:

  • Minor GC(也称为young GC);
  • Major GC(也称为Old GC);
  • 分代GC;
  • Full GC;

在垃圾回收的过程中,Minor GC和Major GC会频繁发生,尽可能地减少Full GC的次数。

这些GC的区别上面这篇都有全面的详解。

G1垃圾收集器深入剖析

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

这篇文章主要讲了以下几点:

2.G1堆内存;

3.G1回收流程;

4.G1 GC模式;

5.G1推荐用例;

ZGC垃圾收集器

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

这篇垃圾收集器文章详解了以下几点:

  1. ZGC的特征;
  2. ZGC的原理;
  3. ZGC的内存布局;
  4. ZGC的垃圾回收机制;
  5. ZGC染色指针;
  6. ZGC读屏障;

以上我主要从JVM内存模型、JVM垃圾回收算法、JVM性能调优方法、JVM调优工具、JVM垃圾收集器等等进行了一个完整的详解,希望这个JVM虚拟机系列能对你有所帮助!

JVM虚拟机系列详解:内存模型+垃圾算法+垃圾回收器+性能调优等

继续阅读