0

JVM(可能还有 CLI)会被视为虚拟(相当于“普通”程序堆栈中的 x86)还是虚拟操作系统(相当于 Windows)?

4

2 回答 2

2

严格来说,它是一个虚拟机,即:它执行一种特殊的低级语言(类似于 x86 ASM。CLI 使用 MSIL,JVM 使用“字节码”)并将它们翻译成目标机器的操作码(x86,x86_64 , ARM .. 等)用于在主机 CPU 上执行。

它还管理编组(即:正确处理并将变量传递到本机内存堆栈/堆)以允许从托管世界内部到运行 VM 的外部操作系统的函数调用。

但实际上,除了自动垃圾收集和 CPU 架构独立性之外,单独的 JVM 和 CLI 都不是很有帮助,但它们由一个大型基础库(Java 类或 .NET BCL)补充,它允许你做许多平台相关的东西,而无需调用特定于平台的 API 并手动对所有内容使用封送处理。

这就是为什么每个操作系统都有不同的 Java 运行时环境。每个人的 JVM 都转换为特定的 CPU 架构,并使用不同的平台特定 API 来完成统一基础库作为托管世界中的友好 API 向您公开的内容。

希望对您有所帮助。

于 2012-11-08T09:09:58.520 回答
1

jvm被认为是一台真正的计算机,只是没有在硬件中实现。机器有它自己的存储容量、它自己的内存模型、它自己的中央处理器的特定行为和它自己的内部机器代码。这台机器可以通过类、API 等表示的新可能性和模块进行扩展......

它有自己的基于堆栈的架构,就像大多数虚拟机一样。

于 2012-11-08T09:17:23.260 回答