前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 语言属于编译型编程语言还是属于解释型编程语言?

Java 语言属于编译型编程语言还是属于解释型编程语言?

作者头像
白鹿第一帅
修改2021-03-03 15:42:25
7.2K0
修改2021-03-03 15:42:25
举报
文章被收录于专栏:Java EE 企业级开发工作日志

文章目录

  • 前言
  • 一、Java 与 Java 字节码
  • 二、什么是编译器(Compiler)
  • 三、什么是解释器(Interpreter)
  • 总结

前言

我们都知道开发语言整体分为两类,一类是编译型语言,一类是解释型语言。那么你知道二者有何区别吗?编译器和解释器又有什么区别?


一、Java 与 Java 字节码

首先给大家举个例子,使用 Java 语言编写一段代码,在没有语法错误的前提下,编译器就会生成一个扩展名为.class的中间字节码文件。

Java 语言是高级语言,而 Java 字节码是低级语言。字节码类似于机器指令,但它不是体系结构中立的,是可以在任何带 Java 虚拟机的平台上运行的。

关于更多 Java 源程序编译、执行原理的内容可以移步我的另有一篇帖子 Java 版本、语言规范、API、JDK、IDE、Java 源程序编译、执行原理(跨平台性根本原因)、特殊字符用法、8 大数据类型小结

二、什么是编译器(Compiler)

编译器是将源代码编译(翻译)成低级语言的程序。编译器把源程序的每一条语句都编译成机器语言,并保存为二进制文件,运行时计算机可以直接通过运行语言来运行此程序,速度会很快。

编译器产生更快的程序,它必须把每个语句分析一次(边编译边分析),而解释器必须每次分析一次(增加一条分析一次)。此外编译器还可以优化其生成的可执行代码。因为它确切的知道它在哪里运行,并且需要时间来优化代码。在不同的情况下具有不同的速度。

例如在上面的例子中,Hello.java 的源代码文件是通过 Java 编译器产生.class的中间字节码文件然后再送往 JVM 中执行的。

三、什么是解释器(Interpreter)

解释器是直接执行用编程语言编写的指令的程序。

只有在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度不如编译后的程序运行的快。而执行 Java 程序也就是运行程序的字节码,通过 JVM 来解释 Java 字节码。

解释的过程就是一次将字节码中单独的一步翻译为目标机器语言代码,翻译后立即执行这一步。


总结

所以说,Java 语言既不属于编译型编程语言也不属于解释型编程语言,因为它由 Java 编译器编译为字节码文件,然后仍需要有 JVM 将字节码解释翻译为目标机器语言,先编译后解释。关于进一步了解底层原理的,我们可以去看一下 Java 虚拟机的内容,这既是基础,面试必问,也是我们真正想搞懂 Java 这门语言的核心所在。


我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所脾益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、Java 与 Java 字节码
  • 二、什么是编译器(Compiler)
  • 三、什么是解释器(Interpreter)
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档