欢迎各界计算机爱好者加入,弘扬极客精神!

什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

0 喜欢 0 不喜欢
最新提问 9月 15, 2016 分类:C# | 用户: ssss (132 分)  

6 个回答

2 喜欢 0 不喜欢
 
已采纳

Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。

Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

最新回答 9月 15, 2016 用户: ぴ漏網ず嘀渔 (2,006 分)  
采纳于 9月 15, 2016 用户:ssss
2 喜欢 0 不喜欢
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如 处理器 堆栈 寄存器 等,还具有相应的 指令 系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码( 字节码 ),就可以在多种平台上不加修改地运行。
最新回答 9月 15, 2016 用户: Edward (2,002 分)  
0 喜欢 0 不喜欢
最新回答 9月 15, 2016 用户: 5 (5,144 分)  
0 喜欢 0 不喜欢

 Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。

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解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。

最新回答 9月 15, 2016 用户: 我好像在哪见过你 (3,966 分)  
0 喜欢 0 不喜欢
最新回答 9月 15, 2016 用户: 月影千姿 (2,020 分)  
0 喜欢 0 不喜欢

JVM 是 Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行时操作不同的内存区域。 JVM 通过抽象的操作系统和 CPU 结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方法、主机硬件、主机操作系统无关。但是在一些小的方面, JVM 的实现也是互不相同的,比如垃圾回收算法,线程调度算法(可能不同 OS 有不同的实现)。 JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用,保护用户免被恶意程序骚扰。 JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。

正是因为有这样一层操作系统与程序之间的连接,Java程序就能在一台机子上编译后到处都能运行——只要有对应不同系统的Java虚拟机就可以了。因此Java被称为“平台无关”

最新回答 9月 15, 2016 用户: 笑诸雄 (1,786 分)  
...