java源码编译过程-Java程序运行机制解读

Java程序从编译到最终执行经历了哪些过程? 在解决这个问题之前,我们先简单了解一下。

Java程序有两个非常重要的阶段:编译阶段和运行阶段。

Java程序员直接编译的Java代码(普通文本)很难被JVM直接识别。 这些普通的Java代码文本被称为:Java源代码,也就是说Java程序员编译出来的代码就是源代码。 源代码不能直接执行,需要先编译生成源代码对应的“字节码”,JVM才能识别“字节码”。 Java代码将这些普通文本转为字节码的过程称为:编译。

那么编译阶段和运行阶段可以在不同的操作系统上完成吗? 答案是肯定的,因为Java语言是跨平台的,在Windows上编译生成的“字节码”也可以在Linux上运行,可以一次编译,到处执行。 (这里如果不明白,可以参考之前的文章:Java语言的健壮性和可移植性)

java源码编译完成后,可以删除源码吗? 它是可执行的,只留下字节码吗? 是可以完整执行的,因为源代码不参与程序的执行过程,而字节码参与程序的执行过程。 但最好不要删除源代码,因为执行结果可能不是你需要的。 当执行结果不是你需要的时候,你可以重新打开源代码进行更改,然后重新编译生成新的字节码,然后重新开始执行,这样就会有新的执行效果。

源代码的文件扩展名必须是:xxx.java,需要注意的是,编译出来的字节码文件的扩展名是:xxx.class。 .java文件是源文件,源代码在这个文件中编译。 .class文件是字节码文件,通过源代码编译得到。

另外需要注意的是:一个ja​​va源文件可以编译生成多个class文件,最后运行的是class文件。

那么字节码文件是二进制文件吗? 答案是否定的,它不是二进制文件。 如果是二进制文件,就不需要JVM,因为操作系统可以直接执行二进制文件。

回到我们之前的问题,java程序从开发到最终运行经历了什么?

编译阶段:(可以在Windows上)

步骤1:在硬盘某处创建一个新的xxx.java文件(随机)。

步骤2:用记事本或其他文本编辑器打开xxx.java文件。

第三步:编译xxx.java文件中的源代码“符合java句型规则”。 (编译到源文件中的代码称为源代码)

第四步:保存。 (一定要保存xxx.java文件)

步骤5:使用编译器(javac[JDK安装后包含])编译xxx.java文件。

第六步:如果xxx.java文件中编译的源代码符合语句规则,则编译通过。 如果xxx.java文件中编译的源代码违反了语法规则,那么编译器就会报错。 编译器报错后不会生成class文件,只有编译通过后才会生成class字节码文件。 并且一个java源文件可以生成多个class文件。 (编译本质上就是检测句型)

运行阶段(JRE正在工作):(可以在Windows或其他操作系统上。)

步骤7:如果是在Linux上运行,则需要复制在Windows上生成的类文件。 您不需要复制源代码。 实际运行的是字节码。 (但是不要删除源码,很有用)

第八步:使用JDK自带的一个命令/工具:java(负责运行的命令/工具)来执行字节码。

步骤9:接下来的步骤全部交给JVM,不需要程序员干预。 JVM会将字节码文件加载到其中,然后JVM会解释该字节码。 (解释器负责将字节码解释为二进制1010101010...等)

步骤10:JVM将生成的二进制代码交给OS操作系统,操作系统执行二进制代码与硬件进行交互。

注意:上面的过程中java源码编译过程,需要用到两个非常重要的命令:javac命令负责编译; java命令负责运行。 还有,xxx.java源文件编译后会生成A.class、B.class、C.class等文件,那么我们称A为类、B为类、C为类java源码编译过程,其中A、B、C是class的名称,即类名,是SUN规定的Java句型。

上面是一个复杂的过程,那么程序员需要做什么呢? Java程序员的主要工作是在编译阶段。 新建一个java文件,打开java文件,编写java源代码,保存,编译java命令,运行java命令。 简单来说就是编译、编译、运行。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 java源码编译过程-Java程序运行机制解读 https://www.wkzy.net/game/186337.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务