JVM(可能还有CLI)是否会被视为虚拟计算机(相当于“普通”程序堆栈中的x86)或虚拟 OS (相当于Windows)?
答案 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等表示......
它拥有自己的基于堆栈的架构,就像大多数虚拟机一样。