我想知道java解释器(JVM)和OS解释器(命令解释器)有什么区别?
所以这就是您要寻找的区别。
CLI解释器CLI解释器针对不同的操作系统具有不同的语法。它通常用于运行其他程序,并且实际上仅花费少量时间来处理CLI语句。
具有JVM的Java虚拟机Java编译器将Java源代码转换为称为Java类文件的中间形式。对于所有操作系统,类文件都是相同的。创建类文件时,需要进行大量的语法错误和不一致检查。 Java解释器读取并执行类文件中的指令。
即时Java解释器JIT优化了经常运行的代码,使执行速度大大提高。
或多或少地问轮胎和方向盘有什么区别。好吧,也许不是那么激烈,但是这个问题对我来说真的没有任何意义。假设您的意思是命令行界面..甚至在shell中运行的脚本???假设您的意思是JVM vs Shell。 Shell可以在一定程度上像VM一样可移植。并且,如果该shell支持bash或同等功能的脚本。区别在许多层面上。 JVM是一个机器解释器,或多或少是一个仿真器。 Shell只是一个解释器。也就是说,Java是在仿真机上运行的编译代码。 Shell脚本是运行实时代码的解释器。由于您只询问了“解释器”,而不是语言本身,语言的工具集,功能等,因此我将保留它。
[在系统级别上,JVM与解释器的实现是,因为JVM本质上是机器仿真器,所以它还支持诸如动态重新编译(具有其他名称; Java并未发明)的高级技术。 JVM的某些部分还可以作为硬件/软件解决方案在硬件中实现(某些JVM字节代码可以在处理器上本地执行)-解释器通常不能。这并不是说您无法实现动态重新编译(代码执行映射:将解释后的代码再次作为本机代码运行),但在那一点上,它将不仅仅是一个直接的解释器。 Java总体上关注速度,同时仍保持编译代码的可移植性。口译员不是。如果速度是一个问题,则可以使用更快编译的代码(链接的库,例如C型)进行补充。