面试题之JVM

1、Java 为什么能一次编写,处处运行?
2、JVM 是什么?
3、HotSpot 是什么?
4、JVM 内存区域分类哪些?
5、堆和栈区别是什么?
6、JVM 哪块内存区别不会发生内存溢出?
7、什么情况下会发生栈内存溢出?
8、对象都是在堆上分配的吗?
9、你怎么理解强、软、弱、虚引用?
10、常用的 JVM 参数有哪些?
11、Java 8 中的内存结构有什么变化?
12、Java 8 中的永久代为什么被移除了?
13、什么是类加载器?
14、类加载器的分类及作用?
15、什么是双亲委派模型?
16、为什么要打破双亲委派模型?
17、可以自定义一个 java.lang.String 吗?
18、什么是 JVM 内存模型?
19、JVM 内存模型和 JVM 内存结构的区别?
20、什么是指令重排序?
21、内存屏障是什么?
22、什么是 Happens-Before 原则?
23、GC 是什么?为什么需要 GC?
24、什么是 MinorGC 和 FullGC?
25、一次完整的 GC 流程是怎样的?
26、JVM 如何判断一个对象可被回收?
27、常用的垃圾收集器有哪些?
28、常用的垃圾回收算法有哪些?
29、什么是内存泄漏?
30、为什么会发生内存泄漏?
31、如何防止内存泄漏?
32、什么是直接内存?
33、直接内存有什么用?
34、怎样访问直接内存?
35、常用的 JVM 调优命令有哪些?
36、常用的 JVM 问题定位工具有哪些?
37、常用的主流 JVM 虚拟机都有哪些?