java编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构.

基于栈的指令集架构的特点:

  1. 设计和实现更简单,适用于资源受限的系统
  2. 避开了寄存器的分配难题;使用了零地址的指令方式分配
  3. 指令流中的指令大部分都是零地址指令,其执行过程依赖于操作栈,指令集更小,编译器容易实现
  4. 不需要硬件支持,可移植性好,更好实现跨平台.

基于寄存器的指令集架构:比如传统的PC以及安卓的Davik虚拟机.有点事性能更优秀

**零地址的指令:**一般我们操作指令都是需要两部分(一部分是地址,一部分是操作数,),而我们基于栈的指令集架构,由于栈的特性,栈在操作数据的时候,随着栈的入栈跟出栈,操作的都是栈顶的数据,来达到零地址的目的.

代码示例:
反编译指令:javap -v 类名.class
JVM==3>JVM的架构模型

JVM==3>JVM的架构模型

相关文章:

  • 2021-11-23
  • 2021-07-23
  • 2021-12-23
  • 2021-11-28
  • 2021-07-29
  • 2021-05-30
  • 2021-10-13
猜你喜欢
  • 2021-11-18
  • 2021-07-20
  • 2021-10-25
  • 2021-04-16
  • 2021-05-24
  • 2021-12-31
  • 2021-10-01
相关资源
相似解决方案