在java中,虚拟机的重要性就不再重复了,想必大家也对这方面有了基础的了解。本篇我们针对其中的架构模型进行分析,主要分成栈式架构和寄存器架构。想必大家这架构模型不是很清楚,在使用者两种架构时容易出现混淆。下面我们就这两种不同的jvm架构分别展开讲解。
Java编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。
1、栈式架构的特点
系统的设计与实现比较简单,适合资源有限的系统;
避免寄存器分配困难,采用零地址指令方式;
在指令流中,大多数指令都是零地址的,它们的执行取决于操作栈。较小的指令集,易于编译;
无需硬件支持,更好的可移植性,更好的跨平台实现。
2、寄存器架构的特点
最典型的应用是X86的二进制指令集:比如Android的Davlik虚拟机;
而指令集体系结构完全依赖硬件,移植性差;
出色的工作,高效的执行;
用较少的指令来完成一个操作;
大多数基于寄存器结构的指令集倾向于使用一地址指令、二地址指令和三地址指令,而基于栈式结构的指令集倾向于使用零地址指令。
因为跨平台设计,所以Java指令都是按照栈设计的。由于不同平台的CPU结构不同,所以不能设计为基于寄存器的,优点是跨平台,指令集小,易实现,缺点是性能下降,而且需要更多的指令来实现相同的功能。
以上就是java之JVM的架构模型,大家可以对这方面的知识点先进行理解,学会后用文本保存下来,避免遗忘。更多Java学习指路: