java编译器输入的指令流一种是基于栈的指令集架构,另外一种指令集架构基于寄存器的指令集架构
1.基于栈的指令集架构
优点:(1)不需要硬件支持,可移植性更好,更好实现跨平台的操作
(2)指令流中的指令大部分是领地址指令,其执行过程依赖操作栈,编译器更容易实现
缺点:(1)基于栈的指令集的缺点在于完成相同的操作,指令数量通常要比基于寄存器的指令集数量要多
2.基于寄存器的指令集架构
优点:(1)基于寄存器的指令集是直接由CPU来执行的,它是在高速缓冲区进行执行的,速度要快很多
缺点:(1)依赖硬件,可移植性差(因为寄存器的指令集架构跟系统的cpu息息相关,所以移植性会很差)
因为跨平台的设计:Java的指令都是根据栈来设计的(不同CPU架构不同,所以不能用寄存器)
市场上暂时发现的虚拟机Dalvik VM 的虚拟机是基于寄存器的指令集架构,其他的都是基于栈的指令集架构