List

  1. 被加载到内存的类的具体格式是什么位置在哪里,每一部分的信息是如何放到内存中的,又是如何提供给外界访问的。

  2. 将符号引用解析为直接引用的过程是如何实现的,Hash 表吗?

  3. 早期绑定,晚期绑定,静态链接,动态链接概念上的区别。

  4. 晚期绑定的流程是什么样的,是对运行时常量池中替换还是虚拟机栈中的动态链接进行替换?

  5. 为什么 Java 中的 Lambda 表达式是动态语言特性,哪里体现了变量类型是由运行时的值确定的?将 Lambda 赋值给一个变量不也需要声明变量的接口类型吗。

  6. 虚方法表在内存中的位置是哪里,多态的具体实现原理,方法分派的流程。

  7. SafePoint 是不是唯一进入 SafeRegion 的监测点?

  8. 局部变量表中的 GCRoots 确定步骤,是运行到 SafePoint 再构造吗,这样不就和存储空间没有关系了吗。

  9. 为什么局部变量表和操作数栈数据转移指令要区分基本类型,不能只按照长度区分吗?反正都是移动数据,只需要在意移动的长度即可。

  10. 对于 invokespecial 中对父类方法的访问,是可能出现动态方法分派的,因为调用的父类方法也不确定一定在父类中实现,有可能是继承于父类的父类中的。这和 invokevirutal 调用方法的适用范围是一样的嘛。

  11. 接口继承的实现原理???

  12. JVM 代码沙箱安全机制

  13. 代码热更新如何打破双亲委派?如何卸载再重装,原理?

  14. 一个应用中对不同版本依赖库加载原理,不同应用对不同版本依赖库加载原理?容器是如何用不同类加载器解决这些问题的? 参考这篇文章:https://blog.csdn.net/TZ845195485/article/details/117392145