我们称java为平台无关的,因为java有一个虚拟机JVM,它可以在任何平台上独立执行字节码。
但是 JVM 必须安装(或必须驻留在)该系统上。
现在,为什么人们不为其他现有语言创建像 JVM 这样的虚拟机,并将这些语言称为平台无关的语言?
最佳答案
平台独立性与虚拟机没有直接关系。平台独立开发意味着您开发的软件可以在多个平台上运行。这也可以使用 C 或 C++ 来实现,例如使用 QT 或 boost 等多平台库(无论您的目的是什么)。必须提到的是,C 和 C++ 不在虚拟机中运行。其他语言(如 Java)和 .Net 语言(如 C#)被转换为字节码并在虚拟机中运行。要在不同平台上运行字节码,您需要适用于这些平台的虚拟机。因此必须为每个特定平台开发虚拟机。
而且您也不能简单地为 C 创建虚拟机,它根本不被认为可以在虚拟机中运行。您拥有两种语言:“直接”运行的语言和在虚拟机中运行的语言。您可以使用这两种语言开发独立于平台的软件。简而言之:平台独立性与虚拟机没有直接关系(但当然,虚拟机不需要为每个平台编译一次代码,只需要一次编译,并且允许在拥有该虚拟机的所有平台上直接执行,因此拥有虚拟机可以使事情变得容易一些。)
关于java - 为什么其他语言而不是java不是平台无关的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25465987/