C、Java、Python编译/解释比较

C语言(编译):

编译可以细分为两步:

1、汇编:生成汇编代码

2、编译:将汇编代码翻译为机器码


Java(先编译,后解释):

1、编译生成字节码bytecode。

       字节码是编码后的数值常量、引用、指令等构成的序列。字节码是从源代码到机器码的一种中间状态,不同场景下的字节码不完全一样,比如Java的字节码和python的字节码并不是完全一样的概念。

       字节码的特点是:与特定软件运行和软件环境有关,与硬件环境无关。

2、字节码由Java虚拟机解释运行。

      这步又包含:类的加载、类的执行两步。

说明:因为Java源代码中要求程序员指定每个变量的原始数据类型,所以Java也可以通过编译生成机器码。但这种做法编译出的Java包(机器码)是与硬件有关的。


Python(解释):

其实Python也有编译的过程,只不过是解释器先做了编译在做解释

你可能感兴趣的:(C、Java、Python编译/解释比较)