C/C++ 和 Java的编译运行机制比较

计算机程序语言按程序的执行方式可分为编译型语言和解释性语言。

编译型语言是指使用专用的编译器,针对某操作系统将高级语言源代码一次性地翻译成可被该系统硬件执行的机器码(包括机器指令和操作数),并包装成该系统所能识别的可执行程序的格式。 可执行程序可脱离开发环境,在该系统上独立运行。

解释型语言是指使用专门的解释器直接对源程序逐行解释成特定系统的机器码并可立即执行的语言。


C/C++是编译型语言。编译过程如下:

在windows上最终生成PE文件(.exe),在Linux上生成ELF文件。

可分别在各自系统直接执行,但不能跨系统执行。

而且同一份代码由于操作系统的不同,以及一些类库和规范不同,有可能无法跨平台编译。


Java是半编译型,半解释性语言。编译执行过程如下:

Java 编译器(javac)先将java源程序编译成Java字节码(.class), JVM负责解释执行字节码文件。

字节码文件具有平台无关性,只面向JVM。

JVM是Java程序跨平台的关键部分。 不同系统有不同的JVM, 相同的Java字节码通过不同的JVM解释成不同系统上可执行的指令,并执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JVM、Java编译器和Java解释器 java解释器就是把在java虚拟机上运行的目标代码(字节码)解释成为具体...
    光剑书架上的书阅读 8,835评论 1 15
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 命运决定了以后再没法聚头,但说过去却那样厚。 来年陌生的是昨日最亲的某某,总好过那日我没有遇过某某。 那些我们既不...
    尘_寞阅读 242评论 0 1
  • 我,一位来自农村的普通女孩儿,08年大学毕业参加了特岗教师考试,成为了一名教师,重回农村,开始了我三尺讲台的执教生...
    萤之翼阅读 546评论 0 1