1.什么是JVM?
JVM:Java Virtual Machine(Java虚拟机)
Java虚拟机指能执行标准Java字节码的执行机器
2.JDK与JVM的区别
JDK=JRE+开发调试诊断工具
JRE=JVM+Java标准库
3.JVM的运行时数据区有哪些
程序计数器
Java机虚拟栈
堆内存
方法区
运行时常量池
本地方法栈
4.堆内存(heap)
由程序代码自由分配的内存,与栈内存做区分,在Java中堆内存主要用于分配对象的存储空间
分为:新生代,存活区,老年代(新生代+存活区=年轻代)
5.内存溢出(OOM),内存泄漏
内存溢出(OOM)是指可用内存不足
内存泄漏(Memory Leak)是指本来无用的对象却继续占用内存,没有再恰当的时机释放占用的内存。
两者关系:内存泄漏不恰当处理最终会导致内存溢出
6.Jdk8默认使用的垃圾收集器
并行垃圾收集器(Parallel GC)
7.Jdk11默认使用的垃圾收集器
G1
8.常见的垃圾收集器
串行垃圾收集器 -XX:+UseSerialGC
并行垃圾收集器 -XX:+UseParallelGC
CMS垃圾收集器 -XX:+UseConcMarkSweepGC
G1垃圾收集器 -XX:+UseG1GC
9.如果CPU使用率突然飙升,如何排查
收集不同的指标(cpu,内存,磁盘IO,网络等等)
分析应用日志
分析GC日志