JVM架构模型
Java编译器输入的指令流基本是一种基于栈的指令集架构,另一种指令集架构是基于寄存器的指令集架构。
两种架构之间的区别:
栈式架构的特点
1、设计和实现更简单,适用于资源受限的系统;
2、避开了寄存器的分配难题:使用零地址分配。
3、指令流中的指令大部分是零地址指令,其执行过程依赖于操作栈。指令集更小,编译器容易实现。
4、不需要硬件支持,可移植性更好,更好实现跨平台
寄存器架构特点
1、指令集完全依赖硬件,可移植性差
2、性能优秀,执行更高效
3、花费更少的指令去完成一项操作
4、大部分情况下,基于寄存器的指令集往往都以一地址指令、二地址指令和三地址指令为主,而基于栈架构的指令集却式以零地址指令为主。
栈指令集![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8f539eedb66c990ad09cf6312f41fab5.png)
寄存器指令集
由于跨平台性的设计,java的指令集都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器。
优点:跨平台性、指令集小、指令多;
缺点:执行性能比寄存器差;