Java程序运行机制

编译型和解析型其实都是翻译的意识,主要是翻译的时间点不一样。时间点不一样看起来有点不好理解,比如一个外国人想看中文书籍,可以一次翻译整本书(编译型),也可以看的时候看一句翻译一句(解析型)。
主要区别在于,前者源程序编译后即可在该平台运行,后者是在运行期间才编译。所以前者运行速度快,后者跨平台性好。

  1. 编译型

一次性的编译(翻译)成平台相关的机器语言文件,运行时脱离开发环境,运行效率高,比如C、C++都是编译型语言。

  1. 解释型

使用专门的解释器对源程序或中间文件(例如java的字节码)逐行解释成特定平台的机器码并立即执行。是代码在执行时才被解释器一行行动态解析和执行,而不是在执行之前就完成全部编译(翻译)。只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植

  1. 编译型与解释型,两者各有利弊

    前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、Python等等。

  2. JAVA程序程序运行机制

java是先经过一次预编译(javac命令编译)成字节码文件,然后再通过JVM解析执行。所以说java既有编译型特性也有解析型特性。JAVA简单的运行机制如下图:

在这里插入图片描述

java针对不同的平台有不同的JVM,实现了跨平台。所以Java语言有一次编译到处运行的说法。其实是一次编译成字节码中间文件(*.class文件),最终还是需要 jvm的解释,才能在各个平台执行,这也是java跨平台的原因,如下图:

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值