当前位置:首页 > 虚拟机 > 正文

java虚拟机与平台无关


一、Java为什么是平台无关的?Java是一种平台无关的语言,这意味着用Java编写的应用程序无需修改就可以运行在不同的软件和硬件平台上。平台独立性有两种类型:源代码级和目标代码级。C和C++具有一定程度的源代码级平台独立性,这意味着用C或C++编写的应用程序无需修改,只需要重新编译就可以在不同平台上运行。
Java主要依靠Java虚拟机(JVM)来实现目标代码级别的平台独立性。JVM是附属于特定操作系统的抽象机器,它有一组虚拟机指令、自己的数组、寄存器组等。但JVM通常是用软件而不是硬件来实现的。(目前,SUNSystems已经设计并实现了Java芯片,主要应用于NC网络计算机。此外,Java芯片的出现也将使Java更容易嵌入到家用电器中。)JVM是平台无关的基础对于Java。在JVM上,有一个Java解释器,用于解释Java编译器编译出来的程序。Java程序员编写完软件后,通过Java编译器将Java源程序编译成JVM字节码。任何配备Java解释器的机器都可以运行这个程序,无论生成字节码的平台是什么(过程如图1所示)。此外,Java使用基于IEEE标准的数据类型。通过JVM保证了数据类型的一致性,同时也保证了Java平台的独立性。


二、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机可以理解为一种特殊的“操作系统”,但它连接的是通用操作系统和Java程序而不是硬件。
操作系统和程序之间的这一层连接使得Java程序可以在一台机器上编译并在任何地方运行,只要不同系统上有相应的Java虚拟机即可。因此,Java被称为“平台无关”。


三、为什么说java的运行与计算机硬件平台无关我本来不想回答,但是上面朋友的解释让我无语了。
发帖者应该知道Java虚拟机(又称为JVMJava虚拟机是一个常见的软件,与硬件和操作系统相关,但也正是因为存在)。该软件允许我们编写的Java代码与硬件平台无关。由于运行在不同硬件和平台上的虚拟机可以将相同的java代码翻译成不同的机器语言,因此它们可以运行在不同的机器上。
虚拟机就像一个翻译器,同一个中文句子,如果你去日本,你需要日语翻译,如果你去英语国家,你需要英语翻译。但是对于这个中文句子,我们不需要做任何修改,只需要改变翻译即可。这里,我们说这个中文句子是平台无关的,平台特定的翻译完成中间转换。