爱收集资源网

Java编译的奥秘揭秘!从入门到精通,轻松掌握编译过程

网络整理 2023-09-30 16:03

翻译程序:是指的将高级语言翻译成机器语言的过程。

预备知识:

计算机的层次结构大致可以分为五层结构:高级语言、汇编语言、操作系统、机器语言、微指令系统。

翻译程序可以分为两种情况:编译程序和解释程序

#f:4:7:2:7:1:5:a:f:b:8:0:b:f:e:d:2:3:0:c:6:b:1:7:8:2:c:f:a:4:e:0#

编译程序

所谓编译程序,就是指将“源程序”一次性编译成“机器语言”,也即“可执行文件exe”。编译完成后,再执行该文件。例如C语言程序,就是先全部编译为机器语言再执行。(参看C语言的编译过程:预处理-编译-汇编-链接-装入)

解释执行

所谓解释执行,就是指对于“源程序”,翻译一条句子为机器语言,立即执行该句子,执行完成后,再继续翻译旁边的一条句子,在执行。依次:翻译一条句子就立刻执行一条句子。例如Python

特例:JAVA,一次编译,到处执行

JAVA并不完全相同于上述两种情况,Java引入了字节码文件(.class)以及JAVA虚拟机(JVM)的概念。详细来说,就是:java类似于C语言一次性把源程序编译完成,但是C程序是将源程序直接编译为机器语言了,而java程序则是编译为了字节码文件(.class)。随后,java的字节码文件在装载有JVM的机器上被解释为机器语言,再执行。

#e:7:e:b:6:2:4:8:6:3:1:3:1:f:e:e:3:0:5:c:1:7:f:3:d:a:b:a:6:c:7:4#

Java编译器将.java文件编译成字节码(.class文件),class文件中的代码是是一种中间代码,介于源程序与机器码之间,该字节码不能被除JVM外任何平台所理解,当JVM接收到字节码,它会辨识出它所工作的平台,然后将字节码转换为原生的机器码。

总结来说:java的编译过程,相当于在c的编译过程中降低了一个环节,即从"源程序–>机器语言"变成了"源程序–>字节码文件–>机器语言",而字节码文件只有JVM能够辨识理解。因此,这个新增的流程,使得java没有C/C++运行这么快速,但是新增了“跨平台性”,只要有jvm的机器都能执行字节码文件,也即“一次编译,到处执行”。

c语言是系统软件吗
上一篇:移动家庭消费140送5G手机,靠谱吗? 下一篇:没有了