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 虚拟机都有哪些?