精华内容
下载资源
问答
  • Java编译型还是解释型语言

    千次阅读 多人点赞 2020-09-19 10:53:20
    1.编译型语言和解释型语言 编译型语言 定义:在程序运行之前,通过编译器将源程序编译成机器码(可运行的二进制代码),以后执行这个程序时,就不用再进行编译了。 优点:编译器一般会有预编译的过程对代码进行优化。...

    1.编译型语言和解释型语言

    编译型语言

    定义:在程序运行之前,通过编译器将源程序编译成机器码(可运行的二进制代码),以后执行这个程序时,就不用再进行编译了。

    优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高,可以脱离语言环境独立运行。

    缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

    总结:执行速度快、效率高;依靠编译器、跨平台性差些。

    代表语言:C、C++、Pascal、Object-C以及Swift。

    解释型语言

    定义:解释型语言的源代码不是直接翻译成机器码,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。在运行的时候才将源程序翻译成机器码,翻译一句,然后执行一句,直至结束。

    优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

    缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

    总结:执行速度慢、效率低;依靠解释器、跨平台性好。

    代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby。

    混合型语言

    定义:既然编译型和解释型各有缺点就会有人想到把两种类型整合起来,取其精华去其糟粕,就出现了半编译,半解释型语言。

    比如C#,C#在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了中间语言运行库运行中间码,中间语言运行库类似于Java虚拟机。.NET在编译成IL代码后,保存在dll中,首次运行时由JIT在编译成机器码缓存在内存中,下次直接执行。严格来说混合型语言属于解释型语言,C#更接近编译型语言。

    Java即是编译型的,也是解释型语言,总的来说Java更接近解释型语言

    • 可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。同时围绕JVM的效率问题,会涉及一些如JIT、AOT等优化技术,例如JIT技术,会将热点代码编译成机器码。而AOT技术,是在运行前,通过工具直接将字节码转换为机器码。

    • 可以说它是解释型的。因为Java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的。

    2.动态类型语言和静态类型语言

    动态类型语言

    动态类型语言:在运行期间才去做数据类型检查的语言,说的是数据类型。动态类型语言的数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段。

    代表语言:Python、Ruby、Erlang、JavaScript、Swift、PHP、Perl。

    静态类型语言

    静态类型语言的数据类型是在编译期间(或运行之前)确定的,编写代码的时候要明确确定变量的数据类型。

    代表语言:C、C++、C#、Java、Object-C。

    3.动态语言和静态语言

    动态语言

    动态类型语言和动态语言是完全不同的两个概念。

    动态语言:说的是运行时改变结构,说的是代码结构。在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。

    代表语言:Object-C、C#、JavaScript、PHP、Python、Erlang。

    静态语言

    与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++。

    展开全文
  • Java语言是编译型语言还是解释型语言? 我们都知道,编程语言从程序执行过程分,分为编译型语言和解释性语言 什么是编译型语言和解释型语言? Java语言看似是编译型的,因为Java程序代码的确是需要经过编译的 还...

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

    我们都知道,编程语言从程序执行过程分,分为编译型语言和解释性语言

    什么是编译型语言和解释型语言?

    • Java语言看似是编译型的,因为Java程序代码的确是需要经过编译的
      还记得在cmd中用javac的命令吗?
      没错,javac就是用来编译Java程序代码的(把.java源程序编译为.class文件)
      不经过编译,.java文件运行不了!

    • Java语言又看似是解释型的,因为Java程序要在JVM上解释运行

    那到底Java是什么类型的语言呢?

    Java是解释型语言

    为什么Java是解释型语言?

    Java首先由编译器编译成.class类型的文件,这个是java自己类型的文件 然后在通过虚拟机(JVM)从.class文件中读一行解释执行一行,所以他是解释型的语言,正是由于java在JVM上解释运行,对于多种不同的操作系统有不同的JVM,所以 Java才实现了真正意义上的跨平台!
    在这里插入图片描述

    再来几张图帮助理解Java的解释执行过程:

    在这里插入图片描述

    在这里插入图片描述

    通过以上介绍,我们队Java程序执行过程就清楚了

    所以,Java是一种解释型语言,具有较好的跨平台性。

    另一种解释型热门语言:Python

    展开全文
  • java编译型还是解释型语言

    千次阅读 2018-11-11 16:32:01
    一、你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。  二、你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就...

    Java这个语言很非凡!

    一、你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。 
    二、你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。 
    三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。

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

    请观看下面两张图 了解一下Java的虚拟机机制: 
    (1)java语言的编译-->解释--->执行过程  


    (2)java的虚拟机 

          现在复习的时候,经看到很多地方都有人在讨论java是哪种类型的语言(编译型、解释型),以前稍微有些接触,但是概念比较模糊,为了不至于让别人的思想左右自己,所以查了些资料,找到了很多热心网友给出的答案,终于有些明白。这里先给出编译型语言和解释型语言的定义。 
    定义: 
    (1)编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。 
    (2)解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束! 
    区别: 
    (1)编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。 
    (2)解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。 

    总结: 

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

     java编译器和解释器的结构如下图,等搞清楚了再写。。。

     

    本文转自:https://www.cnblogs.com/zjushuiping/archive/2013/01/06/2848478.html ,尊重原创,感谢作者!

    展开全文
  •  对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型...
  • Java到底是编译型语言还是解释型语言?

    万次阅读 多人点赞 2017-05-19 09:05:22
    一、你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。  二、你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就...

    转载自:点击打开链接

    Java这个语言很非凡。 
    一、你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。 
    二、你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。 
    三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。
    像C、C++ 他们经过一次编译之后直接可以编译成操作系统了解的类型,可以直接执行的 所以他们是编译型的语言。没有经过第二次的处理 而Java不一样他首先由编译器编译成.class类型的文件,这个是java自己类型的文件 然后在通过虚拟机(JVM)从.class文件中读一行解释执行一行,所以他是解释型的语言,而由于java对于多种不同的操作系统有不同的JVM所以 Java实现了真正意义上的跨平台! 
    请观看下面两张图 了解一下Java的虚拟机机制: 
    (1)java语言的编译-->解释--->执行过程 


    (2)java的虚拟机 

    今天听到同事在讨论java是哪种类型的语言(编译型、解释型),以前稍微有些接触,但是概念比较模糊,为了不至于让别人的思想左右自己,所以查了些资料,找到了很多热心网友给出的答案,终于有些明白。这里先给出编译型语言和解释型语言的定义。 
    定义: 
    编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。 
    解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!
    区别: 
    编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。 
    解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。 
    个人认为,java是解释型的语言,因为虽然java也需要编译,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型,但是假如非要归类的话,从概念上的定义,恐怕java应该归到解释型的语言中。 
    附: 
    编译型的语言包括:C、C++、Delphi、Pascal、Fortran 
    解释型的语言包括:Java、Basic、javascript

    展开全文
  • Java是到底是编译型语言还是解释型语言?  首先,我们来明确一下什么是编译型语言和解释型语言。  1.编译型语言:如 C、C++,该类语言通过编译器直接生成计算机可以识别的机器语言,需要编译通过后才可以执行。 ...
  • 我所理解的Java到底是解释型语言还是编译型语言

    万次阅读 多人点赞 2017-02-27 20:55:49
    关于Java到底是解释型语言还是编译型语言还是二者的集合?首先理解一下何为解释型语言和编译型语言  计算机高级语言类型主要有编译型和解释型两种:  编译型语言:在程序运行之前,有一个单独的编译过程,将程序...
  • java 编译型(请求次数多)+解释型(请求次数少) 解释性语言定义: 程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。 现代解释...
  • 最近各大互联网公司线上笔试,编程题目里的编译器...学习的过程中,看到这样一个争论“Java、Python谁是编译型语言,谁是解释性语言?”。我在网上查了很多资料,也结合了自己的理解,下面与大家分享一下。 总的来说...
  • JAVA是解释型语言还是编译型语言

    千次阅读 2016-07-05 09:01:39
    JAVA是解释型语言还是编译型语言 概念: 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!   区别: ...
  • python 解释型(函数写在调用前)java 编译型(请求次数多)+解释型(请求次数少)解释性语言定义:程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行...
  • Java基础题:Java编译半解释型语言

    千次阅读 2020-03-21 16:10:18
    编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码(二进制)。像C/C++等都是编译型语言。程序执行效率高,依赖编译器,跨平台性差些,如C、C++、Delphi等。解释性语言在运行程序的时候才翻译,比如...
  • 一 定义解释型语言源代码不是直接翻译成机器语言,而是先...】①程序执行效率:低(一般情况)②跨平台性:高③解释器依赖度:高④形如:Java、JavaScript、Python、VBScript、MATLAB、Ruby等编译型语言首先将源代...
  • 1,什么是编译型语言? 查阅资料后得出,一些我们写好的代码文件经过编译器编译之后,得到的是系统所能够识别运行的。这就是编译型语言, 代表语言有C和C++ 2,什么是解释型语言呢? 解释型语言依赖的是解释器,...
  • Java 的跨平台运行能力的本质原因是, Java 会首先被编译为字节码(bytecode), 然后可以被不同平台的 JVM 解释成对应的机器码,得以运行。 解释和 JIT 编译的区别: 解释: JVM 运行时加载 .class 文件, 逐条读取...
  • Java编译型语言还是解释型语言?

    千次阅读 2018-04-18 18:47:04
    写在前面: 今天在牛客的面经上,看到大家讨论Java究竟是编译形语言还是解释形语言,自己看了些博客和知乎,在这篇博客中,将... 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,就可以直接...
  • Java语言是解释型还是编译型语言Java的运行过程 Java源文件(*.java)通过java编译器(javac)编译成一个ByteCode字节码文件(*.class),字节码由java自己设计的一个计算机JVM解释执行,虚拟机将每一条要执行的...
  • 几天前一个刚接触JavaScript的朋友问我 JavaScript 是编译型语言还是解释型语言。从一个初学者那里听到这样的问题让我有些惊讶,因为所有初学者都知道 JS 是一个解释型语言;特别是像她这样之前使用过 Java 这类语言...
  • Java语言特点

    万次阅读 多人点赞 2019-06-30 19:37:45
    Java语言是简单的 Java语言的语法与C语言和C++语言很接近,从某种意义上讲,它是由C和C++演变而来,使得大多数程序员很容易学习和使用。 对C++来说进行了简化和一定的提高,如:使用接口代替了复杂的多重继承以及...
  • Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
  • 解释型语言和编译型语言

    万次阅读 2019-06-22 16:04:52
    解释型语言和编译型语言 编程语言从执行原理上可分为编译型语言和解释型语言。 比如常见的C语言、C++等都是编译型语言 Java、Python等都是解释型语言 计算机不能直接理解机器语言以外的语言,因此需要将我们写的代码...
  • 严格来说:C,C++是编译型语言(经过编译器生成机器码),它们针对特定的CPU,不具备可移植性。Python、Java属于解析型语言(代码运行期间逐渐生成机器码)。但是python解析过程中也需要编译成pyc文件(生成python...
  • Python语言是编译型语言还是解释型语言? 我们都知道,编程语言从程序执行过程分,分为编译型语言和解释性语言 什么是编译型语言和解释型语言? Python是一种解释型语言 Python程序源码不需要编译,可以直接从源...
  • 1 编译型语言和解释型语言的含义  大家都知道,代码语言级别主要有机器语言、汇编语言、和高级语言。而高级语言主要又分为编译型语言和解释型语言,下面我们主要讨论这两种语言的含义。  编译型语言指使用专门的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 177,798
精华内容 71,119
关键字:

java是编译型语言吗

java 订阅