Java虚拟机
学习来自尚硅谷宋红康JVM全套教程(详解java虚拟机)_哔哩哔哩_bilibili
https://moonshuo.cn/posts/31.html
Java虚拟机
我们目前的Java虚拟机都是基于HotSpot虚拟机,是市面上高性能虚拟机的代表作之一
Java代码的执行流程
JVM的架构模型
Java编译器的指令流基本上是一种基于栈的指令集架构,另外一个是基于寄存器指令集架构
区别
栈式架构特点
- 设计和实现更加简单,适用于资源受限的系统
- 避开了寄存器分配难题,使用零地址指令方式分配,jvm仅仅有一个寄存器,而零地址则是表示没有存储数据或者操作的地址,只是设计到出栈进栈操作
- 指令流中的指令大部分是零地址,执行过程依赖于栈,编译器更加容易实现
- 不需要硬件支持,可移植性比较好
但是这样也会带来一些弊端,与寄存器结构相比,完成同样的操作,栈式架构的指令更加多
1 | /** |
对这个文件进行反编译
上述分别为写入2,存储到1,写入1存储到2,加载1,加载2,相加,结构存储到地址3,返回
但是对于其他的寄存器的计算流程
1 | mov eax,1 |