《深入理解java虚拟机》第三版笔记

- 第一款商用虚拟机ClassicVM使用的是基于句柄的对象查找方式。这样做的目的是当对象移动时不需要修改对象引用的位置。缺点是需要两次定位对象。 - GraalVM,是一个再HotSpot的基础上增强而来的跨语言全栈虚拟机,可以运行java、Scala、Kotlin等基于jvm的语言,还有C、C++、Rust等基于LLVM的语言,同时还支持 …

java中的动态链接

以下为我个人的理解: 在java中,有两个地方会提到动态链接,一不小心弄混了就会非常困惑 一个过程 假设我写了两个方法: method2的字节码指令为: 其中 invokevirtual 表示执行的是一个虚方法,所谓虚方法,就是只有代码在运行期间才知道真正调用的是哪个方法(final 修饰的方法除外),而不是在编译期间就确定的。 后面的 #7 指的是常量池中 …

jvm学习笔记

基于栈和基于寄存器的指令集架构 JVM前端编译器架构都是 基于栈 的指令集架构,与之对应的还有 基于寄存器 的指令集架构。 基于栈的指令集架构 跨平台性好、指令集小、指令多、性能相较于寄存器更差 例: 基于寄存器的指令集架构 直接使用cpu的指令集,故执行幸能更好,但是移植性较差 Hotspot/JRocket/J9 JRocket:号称最快的虚拟机,专注于 …