JVM架构模型

JVM架构模型

指令集架构分类:

  • 基于栈的指令集架构(JVM) 

    • 设计简单,对系统资源要求不高(只有进栈出栈操作)

    • 使用零地址指令方式分配,避开了寄存器的分配难题

    • 由于使用零地址指令,其执行过程依赖于操作栈。指令集更小(但会花费更多的指令去完成一项操作,8字节对齐)

    • 不需要硬件支持,可移植性更好,更好实现跨平台。  

  • 基于寄存器的指令集架构(X86: PC,Android的Davlik虚拟机)

    • 指令集架构完全依赖硬件,可移植性差,但也因此具有更好的性能和更高的执行效率

    • 大部情况下以一地址指令,二地址指令,三地址指令为主;指令集更大16字节对齐,但完成一项操作会花费更少的指令

总结: 由于跨平台的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。

优点: 跨平台,指令集小,编译器容易实现;缺点: 性能下降,实现同样的功能需要更多的指令。

tips:反编译命令: javap -v xxx.class