资讯专栏INFORMATION COLUMN

Java到底是编译型语言还是解释型语言?

KavenFan / 1606人阅读

摘要:编译型语言把做好的源程序全部编译成二进制代码的可运行程序。所以可是说即是编译型的,也是解释型,但是假如非要归类的话,从概念上的定义,恐怕应该归到解释型的语言中。编译型的语言包括解释型的语言包括

转载自网络

Java这个语言很神奇:

你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。

你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。

但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。

像C、C++ 他们经过一次编译之后直接可以编译成操作系统了解的类型,可以直接执行的 所以他们是编译型的语言。没有经过第二次的处理 而Java不一样他首先由编译器编译成.class类型的文件,这个是java自己类型的文件 然后在通过虚拟机(JVM)从.class文件中读一行解释执行一行,所以他是解释型的语言,而由于java对于多种不同的操作系统有不同的JVM所以 Java实现了真正意义上的跨平台!

请观看下面两张图 了解一下Java的虚拟机机制:

Java的编译-->解释-->执行过程

Java的虚拟机

今天听到同事在讨论java是哪种类型的语言(编译型、解释型),以前稍微有些接触,但是概念比较模糊,为了不至于让别人的思想左右自己,所以查了些资料,找到了很多热心网友给出的答案,终于有些明白。这里先给出编译型语言和解释型语言的定义和区别。

编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。

解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!

编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。

解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。

个人认为,java是解释型的语言,因为虽然java也需要编译,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型,但是假如非要归类的话,从概念上的定义,恐怕java应该归到解释型的语言中。

编译型的语言包括:C、C++、Delphi、Pascal、Fortran

解释型的语言包括:Java、Basic、javascript

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73197.html

相关文章

  • JAVA到底编译语言解释语言?

    摘要:最后给出编译型语言和解释型语言的定义。定义编译型语言把做好的源程序全部编译成二进制代码的可运行程序。解释型语言把做好的源程序翻译一句,然后执行一句,直至结束特点编译型语言,执行速度快效率高依靠编译器跨平台性差。 有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。 也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在J...

    beanlam 评论0 收藏0
  • JavaScript到底解释语言编译语言?

    摘要:编译型语言解释型语言主要问题是没有团体或者组织规定这些例如编译型语言和解释型语言的定义以及如何划分。下面是处理声明语句的过程一旦引擎进入一个执行具体代码的执行上下文函数,它就对代码进行词法分析或者分词。这是解释型语言需要的。 几天前一个刚接触 JavaScript 的朋友问我 JavaScript 是编译型语言还是解释型语言。从一个初学者那里听到这样的问题让我有些惊讶,因为所有初学者都...

    gghyoo 评论0 收藏0
  • Python的发展历程

    摘要:可以脱离语言环境独立运行就像一本英文书,我找一个翻译,给他点时间,把英文书翻译成中文的,这就是编译型语言解释型语言有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器虚拟机。就像还是一本英文书,我看一句让他给我解释一句。 写在前面 随着大数据、人工智能这类词汇扑向我们,python这个早在1989就已经出现的语言终于高调回归,为了更好的学习python 我们先来了解下它的前世...

    lovXin 评论0 收藏0
  • 基础冲刺

    摘要:事实上,确实存在多种解释器。在命令行下运行就是启动解释器。最常用的,自带的就是这个是基于之上的一个交互式解释器,也就是说,只是在交互方式上有所增强,但是执行代码的功能和是完全一样的。但是的解释器很多,但使用最广泛的还是。 以下资料大多参考的此篇博客:http://www.cnblogs.com/alex37... 基础冲刺 编译型语言:C、C++ 运行之前都需要一次编译,编译成可以...

    sunny5541 评论0 收藏0
  • 做一个好前端必须要知道的事——JS语言

    摘要:准确的理解,是编译型语言,源代码整个编译成字节码,字节码,是解释型语言。是一个非常灵活的语言,支持命令式和函数式编程。编译型语言通常会用做配置文件,因为我们通常不会改编译后的字节码。 编程语言按各种方法可以分为各种类型,现在让我们来看看JS属于什么类型语言 解释型语言 按编译执行过程,可以分为编译型语言和解释型语言。比如 c 语言,必须先经过编译生成目标文件,然后链接各个目标文件和库...

    Near_Li 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<