JVM(0313-0316)

105 阅读1分钟

1.JVM的组成

1.1 程序计数器

image.png

1.2 Java堆

image.png

image.png

总结

image.png

1.3虚拟机栈

image.png

image.png

image.png

image.png

总结

image.png

image.png

1.4方法区

方法区

image.png

常量池

image.png

运行时常量池

image.png

总结

image.png

1.5直接内存

image.png

image.png

image.png

image.png

2. 类加载器

2.1 什么是类加载器

image.png

image.png

image.png

双亲委派机制

image.png

image.png

总结

image.png

2.2类加载的执行流程

image.png

加载

image.png

验证

image.png

准备

image.png

解析

image.png

初始化

image.png

image.png

使用

image.png

卸载

image.png

3.垃圾回收

3.1 对象什么时候被垃圾回收

image.png

引用计数法

image.png

image.png

可达性分析算法

image.png

image.png

总结

image.png

3.2 JVM中的垃圾回收算法有哪些

image.png

标记清除算法(用的比较少)

image.png

标记整理法

image.png

复制算法

image.png

总结

image.png

3.3 JVM的分代回收

分代收集算法

image.png

工作机制

image.png

MinorGC,MixedGC,FullGC

image.png

总结

image.png

3.4 JVM有哪些垃圾回收器

image.png

串行垃圾收集器

image.png

并行垃圾收集器

image.png

CMS(并发)垃圾收集器

image.png

image.png

G1 垃圾收集器(重点)

image.png

Young Collection

image.png image.png

image.png

image.png

Young Collection + Concurrent Mark(年轻代垃圾回收+并发标记)

image.png

image.png

Mixed Collection(混合垃圾回收)

image.png

image.png

总结

image.png

3.5 垃圾回收时引用的区别

强引用

image.png

软引用

image.png

弱引用

image.png

虚引用

image.png

总结

image.png

4. JVM 调优

4.1 JVM参数调优可以在哪里设置

image.png

tomcat中设置

image.png

Jar包中设置

image.png

总结

image.png

4.2 使用JVM调优的参数有哪些

image.png

设置堆空间的大小

image.png

虚拟机栈的设置

image.png

年轻代中Eden区和两个Survivor区大小比例

image.png

年轻代晋升老年代的阈值

image.png

设置垃圾回收收集器

image.png

总结

image.png

4.2 JVM调优的常用工具

image.png

jps和jstack

image.png

jmap

image.png

jstat

image.png

可视化工具 jconsole和VisualVM

image.png

image.png

总结

image.png

4.3 Java内存泄漏的排查问题

image.png

image.png

image.png

image.png

总结

image.png

4.4 CPU飙高排查问题和思路

image.png

image.png

image.png

总结

image.png