一、Java的运行过程
🍎Java程序运行时,必须经过编译和运行两个步骤。
首先将后缀名为.java的源文件进行编译,最终生成后缀名为.class的字节码文件。然后Java虚拟机将字节码文件进行解释执行,并将结果显示出来。具体过程如下图所示。
🍉Java程序的运行过程详细解释
- 编写一个HelloWorld.java文件;
- 使用javac HelloWorld.java 命令开启Java编译器并进行编译。编译结束后,会自动生成一个HelloWorld.class的字节码文件;
- 使用java 命令启动Java虚拟机运行程序,Java虚拟机首先将从硬盘中找到编译好的字节码文件,通过“类装载器 ClassLoader”将该字节码文件并装载到内存,这个过程被称为类加载,然后虚拟机针对加载到内存中的Java类进行解释执行,最终解释为二进制码,然后操作系统通过执行二进制指令来和硬件平台完成交互。
二、Java的跨平台的解释
Java程序是由虚拟机负责解释执行的,而并非操作系统。通过JVM屏蔽不同操作系统的差异性,实现了java语言的跨平台性,如下图所示:
从上图可以看出,不同的操作系统需要使用到不同版本的JVM,这使得Java语言具有"一次编写,到处运行(Write one , run anywhere)"的特点,有效地解释了程序设计语言在不同操作系统编译时产生不同机器代码的问题,大大降低了程序开发和维护的成本。
需要注意的是,Java程序通过Java虚拟机可以达到跨平台特性,但Java虚拟机并不是跨平台的,也就是说,不同操作系统上的Java虚拟机是不同的,即Windows平台上的Java虚拟机不能使用在Linux平台上,反之亦然。