Java作业1-03:Java跨平台实现的原理是什么?
两个概念
- Java虚拟机(JVM)。JVM的功能是连接Java程序与不同的操作系统,相当于一个接口,有了JVM,相同的Java程序就可以在不同的操作系统上运行了。
- 字节码。字节码是Java虚拟机采用的一种编码方式,类似于机器码,是为了解决不同的操作系统字节位数不一致的问题而产生的。
Java程序的运行过程
先由编译器编译为中间文件,再由解释器解释运行。
-
编译过程。
Java
源代码(.java
文件)经过编译器编译后,成为中间文件(后缀为.class
),这个中间文件里面存储的就是字节码,是为了给虚拟机读取的。这一步是编译过程,由编译器完成。 -
解释过程。有了
class
文件之后,不同的操作系统的JVM
就可以一句句读取字节码文件并将其翻译成不同操作系统的机器码然后执行;这一步是解释过程,由JVM
完成。
上图中,最下面是三种操作系统(Windows,Linux与Mac),中间是Java虚拟机,最上面是程序员写的Java程序,颜色相同表示该程序可以在该操作系统上运行。可以看到,Java虚拟机在其中作为一个桥梁,Java程序只需要与Java虚拟机进行适配,而不需要与不同的操作系统进行适配,从而也就实现了Write once, run anywhere!
的功能。
End
以上是我对Java跨平台实现原理的理解,如有理解不到位之处欢迎留言指出。