JAVA虚拟机处理后的代码是不是直接由硬件处理?还是教给本地操作系统处理?

来源:百度知道 编辑:UC知道 时间:2024/05/13 10:44:47
JAVA虚拟机处理后的代码是不是直接由硬件处理?还是教给本地操作系统处理?

JVM处理后的代码是交给操作系统处理的.最简单的证明是在Windows的任务管理器下,如果你的JVM在运行程序时,就可以看到一个javaw.exe进程.也就相当于JVM是Windows下的一个软件.
再想想,JAVA是平台无关的.要做到在Windows和Linux下都相同,实际上就是针对Windows 和Linux各制定一个JVM实现方案,分别调用各自操作系统提供的API.试想如果是针对硬件,那就每类硬件都要提供一个实现.所以从简单来说,是针对操作系统提供实现.
通常都说JVM效率太低,是因为JAVA代码执行都要通过JVM传给操作系统,再由操作系统传给硬件.而C/C++是直接由编译器传给操作系统,再传给硬件.

虚拟机在操作系统提供的环境下,把class文件编译成硬件所能识别的信号。

然后硬件就能执行了。

这样应该好理解了吧