JVM的角色

时间:2012-11-08 09:02:28

标签: jvm virtual-machine vm-implementation

JVM(可能还有CLI)是否会被视为虚拟计算机(相当于“普通”程序堆栈中的x86)或虚拟 OS (相当于Windows)?

2 个答案:

答案 0 :(得分:2)

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

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

实际上,除了自动化垃圾收集和CPU架构独立性之外,JVM和CLI本身都不是非常有用,但是它们由大型基础库(Java类或.NET BCL)补充,允许你可以做很多平台式的事情,而不必调用特定于平台的API,并为所有事情手动编组。

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

希望对你有所帮助。

答案 1 :(得分:1)

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

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