目录结构

  1. JVM运行时数据区如何划分??
  2. 堆和栈有何区别?
  3. Java虚拟机的堆划分?
  4. 方法区,永久代,常量池,元空间有何关系?
  5. Java如何使用直接内存??
  6. new关键字在虚拟机中是怎样的一个过程?/ JVM构造对象的步骤都有哪些?
  7. 对象在内存存储中的布局是怎样的?
  8. 对象字段的虚共享问题?
  9. 怎样判断对象是否已死?
  10. Minor GC和Full GC有什么不一样吗?
  11. Java四种引用之间的区别?
  12. 垃圾收集算法有哪些?
  13. HotSpot中,安全点和安全区域是怎么一回事?
  14. JVM中有哪些垃圾收集器?
  15. JDK中有哪些虚拟机性能监控与故障处理工具?
  16. class类文件的结构是怎样的?
  17. JVM是如何执行方法调用的?
  18. JVM是如何处理异常的?
  19. JVM是如何实现反射的?
  20. 类加载的过程是怎样的?
  21. 类的初始化何时会被触发?
  22. 数组类型如何完成类加载?
  23. 双亲委派模型?
  24. 双亲委派模型被破坏?
  25. Java代码是怎么运行的?
  26. Java虚拟机的boolean类型?
  27. Java8的 Lambda表达式是怎么运行的?
  28. 如何利用字节码注入为已有代码加料?
  29. 运行时栈帧结构?
  30. JVM为什么采用面向操作数栈而不是寄存器的架构?
  31. Java语法糖?
  32. 即时编译是什么?解释器如何触发即时编译?
  33. 即时编译器与常规的静态编译器有哪些不同?
  34. 即时编译器有哪些优化?
  35. 什么是方法内联?
  36. 什么是去虚化?
  37. HotSpot虚拟机中的intrinsic是指什么?
  38. 逃逸分析,桟上分配,标量替換,同步消除?
  39. 编择器对于读取及存储指令的优化?
  40. 在什么情况下方法调用会被内联?
  41. 在什么情况下循环代码会被优化?
  42. 在什么情况下对象分配会被优化?
  43. 如何写出适用向量化计算的代码?
  44. final字段的实现原理?
  45. 什么是Java内存模型?
  46. 主内存和工作内存是什么?
  47. 什么是happens- before原则?

文献引用

  1. 深入理解Java虚拟机:JVM高级特性与最佳实线/周志明著一2版
  2. 极客时间专栏《深入拆解Java虚拟机》

Q.E.D.


大数据开发工程师,精通 Spark,擅长 Java 和 Scala