Java 为什么是平台无关的?

2025-03-04 15:35:21
推荐回答(5个)
回答1:

Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C++具有一定程度的源代码级平台无关,表明用C或C++写的应用程序不用修改只需重新编译就可以在不同平台上运行。

Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的(过程如图1所示)。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。

回答2:

JAVA能实现与平台无关是因为JAVA虚拟机的原因: JAVA程序都是运行于JAVA虚拟机之上的,至于虚拟机是总么和操作系统对接的,那不需要我们去管。
另外JAVA的运行原理是编译和解释并行的,JAVA只将源代码编译成中间代码,然后用JAVA编译的中间代码在虚拟机上以解释的方式运行,所以JAVA程序执行效率低就是因为它不是直接编译成目标文件,而是编译成中间代码再用虚拟机解释执行。
正是因为以虚拟机解释执行所以不会和操作系统,计算机硬件系统发生什么直接关系。所以就和平台无关。兼容和接口问题都是虚拟机去解决的! 就和.net差不多原理。

回答3:

java跨平台是同一java源码被编译后得到的字节码文件可以在不同的操作系统上运行。
注意编译器和解释器的区别:
编译器是将java文件编译为class字节码文件,而解释器是解释执行字节码文件。
不同的系统用各系统下的解释器来运行程序,而编译文件不用用那个系统下的编译器都可以。

回答4:

java语言的运行是在jvm(java虚拟机)上的。而jvm是可以在多种平台上运行的,如winxp,win7, linux/unix。所以说java的运行是平台无关的。

回答5:

java是运行在虚拟机中,而在windows,linux中的虚拟机各不相同,但他们都向外提供了相同的API,所以,相同的java程序可以在不同的平台下运行。