市面上的java虚拟机有很多种,整体来说分两种架构特点:栈、寄存器
一、基于栈架构的特点(市面上常见的java虚拟机大多的架构方式)
- 设计实现更简单
- 不需要考虑寄存器分配问题(使用零地址指令方式分配)
- 指令集更小,编译容易小
- 不需要硬件支持,可移植性更好,更容易实现跨平台
二、基于寄存器架构的特点(安卓的虚拟机就是基于寄存器的方式)
- 典型的应用是x86的二进制指令集
- 性能优秀,执行指令更高效
- 花费更少的指令完成一项操作
- 指令集架构完全依赖硬件,可移植性差
- 基于寄存器架构的指令集往往以一地址指令、二地址指令和三地址指令为主,基于栈的架构是以零地址指令为主