50+道大厂JVM面试题 + 11张思维导图就是让你懂JVM~
作者介绍
悟空
全栈攻城狮一枚,开发组长,自主开发了Java学习平台、PMP刷题小程序。目前主修Java
、多线程
、SpringBoot
、SpringCloud
。
一、JVM大厂面试题
答案在Java刷题小程序查看
01.JVM内存区域
02.JVM中的线程
03.JVM的栈中引用如何和堆中的对象产生关联
04.逃逸分析技术
05.常见GC算法
06.CMS垃圾回收过程,CMS的各个阶段哪两个是Stop the world的
07.讲一讲G1收集器
08.标记清除和标记整理算法的理解以及优缺点?
09.eden survivor区的比例,为什么是这个比例,eden survivor的工作过程?
10.JVM如何判断一个对象是否该被GC,可以视为root的都有哪几种类型?
11.Java是否可以GC直接内存?
12.强软弱虚引用的区别以及GC对他们执行怎样的操作?
13.Java类加载的过程?
14.双亲委派模型的过程以及优势?
15.JVM方法栈的工作过程,方法栈和本地方法栈有什么区别?
16.常用的JVM调优参数?
17.dump文件的分析?
18.对象分配规则?
19.解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法
20.什么是类的加载?
21.如何⾃定义⼀个类加载器?你使⽤过哪些或者你在什么场景下需要?
22.Java对象创建过程?
23.类的生命周期?
24.垃圾收集器有哪几种?
25.如何判断一个对象是否应该被回收?
26.引用的分类?
27.调优命令
28.调优工具
29.Minor GC与Full GC分别在什么时候发生
30.你有没有遇到过OutOfMemory问题?你是怎么来处理这个问题的?处理过程中有哪些收获?
31.如果线上程序周期性地出现卡顿,你怀疑可 能是 GC 导致的,你会怎么来排查这个问题?
32.JDK1.8之后PermSpace有哪些变动?
33.StackOverflow异常有没有遇到过?⼀般你猜测会在什么情况下被触发?如何指定⼀个线程的堆栈⼤⼩?⼀般你们写多少?
34.内存模型以及分区, 需要详细到每个区放什么?
35.堆里面的分区Eden&survival(from+ to)&老年代各自的特点?
36.如和判断一个对象是否存活?
37.SafePoint是什么?
38.简述GC的三种收集方法标记清除、标记整理、复制算法的原理。
39.CMS收集器与G1收集器的特点?
40.Minor GC与Full GC分别在什么时候发生?
41.有哪几种常用的内存调试工具?
42.Java类加载的几个过程?
43.JVM 内存分哪几个区,每个区的作用是什么?
44.简述 java 垃圾回收机制?
45.Java 中垃圾收集的方法有哪些?
46.简述Java内存模型
47.简述 java 类加载机制
48.类加载器双亲委派模型机制是怎么样的?
49.为什么要有双亲委派模型?
50.什么是类加载器, 类加载器有哪些?
51.简述Java 内存分配与回收策略以及 Minor GC 和 Major GC