JVM (可能还包括CLI)会被视为虚拟机(相当于“正常”程序栈中的x86 )还是虚拟操作系统(相当于Windows)?
发布于 2012-11-08 09:09:58
严格地说,它是一个虚拟机,即:它执行一种特殊的低级语言(类似于x86 / ASM )。CLI使用MSIL,JVM使用“字节码”,并将它们转换为目标机器的操作码(x86、x86_64、ARM )。等)用于在主机CPU上执行。
它还管理封送(即:正确处理变量并将其传递到本机内存堆栈/堆),以允许函数从托管世界中调用到运行VM的外部操作系统。
实际上,除了自动垃圾收集和CPU体系结构无关之外,JVM和CLI本身都没有很大的帮助,但是它们得到了一个大型的基础库( Java类或.NET BCL)的补充,它允许您完成许多平台-y的事情,而不必调用特定于平台的API,并且对所有事情都使用手动封送处理。
这就是为什么每个操作系统都有不同的Java运行时环境。每个人的JVM转换成一个特定的CPU arch,并使用不同的特定于平台的API来完成统一的基础库在托管世界中向您公开的友好API。
希望这对你有帮助。
发布于 2012-11-08 09:17:23
jvm被认为是一台真正的计算机,只是没有在硬件上实现。这台机器有它自己的存储容量,它自己的内存模型,它自己的中央处理单元的特定行为,以及它自己的内部机器代码。这台机器是可以扩展的新的可能性和模块是用类,API,等等.
它有自己的基于堆栈的体系结构,就像大多数虚拟机一样。
https://stackoverflow.com/questions/13285695
复制相似问题