`

java真的能跨平台吗?

阅读更多

 

先给个简单的说明:
java运行时是在java的虚拟机上进行的,虚拟机则运行于操作系统,所以java可以跨平台运行
   java          java         java
java虚拟机       java虚拟机        java虚拟机
windows系统       unix系统          苹果系统



java跨平台原理:

Java字节码的两种执行方式
      1、即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。   
      2、解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程序的所有操作。  
 通常采用的是第二种方法。由于JVM规格描述具有足够的灵活性,这使得将字节码翻译为机器代码的工作具有较高的效率。对于那些对运行速度要求较高的应用程序,解释器可将Java字节码即时编译为机器码,从而很好地保证了Java代码的可移植性和高性能。

Java程序执行与C/C++程序执行的对比分析
             如果把Java源程序想象成我们的C++源程序,Java源程序编译后生成的字节码就相当于C++源程序编译后的80x86的机器码(二进制程序文件),JVM虚拟机相当于80x86计算机系统,Java解释器相当于80x86CPU。在80x86CPU上运行的是机器码,在Java解释器上运行的是Java字节码。
             Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。Java解释器实际上就是特定的平台下的一个应用程序。只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。当前,并不是在所有的平台下都有相应Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics