JVM+GC解析
- 1.JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots
- 2.你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值
- 3.你平时工作用过的JVM常用基本配置参数有哪些?
- 4.强引用、软引用、弱引用、虚引用分别是什么?
- 5.请谈谈你多OOM的认识
- 6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈?
- 7.怎么查看服务器默认的垃圾收集器是哪个?生产上如何配置垃圾回收器的?谈谈你对垃圾收集器的理解?
- 8.G1垃圾回收器
- 9.生产环境服务器变慢,诊断思路和性能评估谈谈?
- 10.假如生产环境出现CPU占用过高,请谈谈你的分析思路和定位
- 11.
1.JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots
1.什么是垃圾
2.要进行垃圾回收,如何判断一个对象是否可以被回收?
枚举根节点做可达性分析(根搜索路径)
2.你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值
2.1 JVM参数类型
2.1.1 标准参数
2.1.2 x参数(了解)
2.1.3 xx参数
Boolean类型
KV设置类型
jinfo举例,如何查看当前运行程序的配置
2.2 盘点家底查看JVM默认值
-XX:+PrintFlagslnitial
-XX:+PrintFlagsFinal
PrintFlagsFinal举例,运行java命令的同时打印出参数
-XX:+PrintCommandLineFlags
3.你平时工作用过的JVM常用基本配置参数有哪些?
常用参数
-Xms –Xmx –Xss –Xmn -XXMetaspaceSize
典型设置案例
-XX:+PrintGCDetails
GC回收参数解读
FullGC回收参数解读
-XX:SurvivorRatio
-XX:NewRatio
-XX:MaxTenuringThreshold
4.强引用、软引用、弱引用、虚引用分别是什么?
整体架构
强引用
5.请谈谈你多OOM的认识
5.1 java.lang.StackOverflowError
5.2 java.lang.OutOfMemoryError: Java heap space
5.3 java.lang.OutOfMemoryError: GC overhead limit exceeded
5.4 java.lang.OutOfMemoryError: Direct buffer memory
-Xms10m -Xmx10m -XX:+PrintGCDetails -XX:MaxDirectMemorySize=5m
5.5 java.lang.OutOfMemoryError: unable to create new native thread
5.5.1 服务器级别调参调优
5.6 java.lang.OutofMemoryError: Metaspace
6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈?
6.1 4种主要垃圾收集器
6.1.1 串行垃圾回收器(Serial)
6.1.2 并行垃圾回收器(Parallel)
6.1.3 并发垃圾回收器(CMS)
6.1.4 上述3个小总结,G1特殊后面说
6.1.5 G1垃圾回收器
7.怎么查看服务器默认的垃圾收集器是哪个?生产上如何配置垃圾回收器的?谈谈你对垃圾收集器的理解?
7.1 怎么查看默认的垃圾收集器是那个?
7.2 默认的垃圾收集器有哪些?
7.3 垃圾收集器
7.3.1 部分参数预先说明
7.3.2 Server/Client模式分别是什么意思
7.3.3 新生代
7.3.3.1 串行GC(Serial)/(Serial Copying)
7.3.3.2 并行Gc(ParNew)
7.3.3.3 并行回收GC(Parallel)/(Parallel Scavenge)
7.3.4 老年代
7.3.4.1 串行GC(SerialOld)/(Serial MSC)
7.3.4.2 老年代 并行GC(Parallel Old)/(Parallel MSC)
7.3.4.3 并发标记清除GC(CMS)
4步过程
优缺点
7.3.5 垃圾收集器配置代码总结
7.4 如何选择垃圾收集器
8.G1垃圾回收器
8.1 以前收集器特点
8.2 G1是什么
特点
8.3 底层原理
8.3.1 Region区域化垃圾收集器