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

一、理解什么是编译型语言和解释型语言

首先,计算机是不能理解高级语言的、更不能直接执行高级语言,它只能理解和执行机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。转换的方式有两种:编译、解释。

1. 编译型语言

使用专门的编译器,针对特定的平台(windows、linux、mac …),将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行程序的格式。

特点:

在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe格式的文件,以后需要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需要编译一次,以后运行时不需要编译,所以编译型语言执行效率高。

总结:
  • 一次性编译成平台相关的机器语言文件,运行时脱离开发环境
  • 与特定平台相关,一般无法移植到其他平台

在这里插入图片描述

2. 解释型语言

使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。只有代码在执行时才被解释器逐行动态翻译和执行,而不是在执行之前先完成翻译的工作。

特点:

解释型语言不需要事先编译,只要某一平台提供了相应的解释器即可执行该程序。

总结:
  • 解释型语言每次运行都需要将源代码解释成机器码再执行,效率较低
  • 只要平台提供相应的解释器,就可以运行源代码,方便源程序移植
3. 二者对比

编译型语言由于执行效率高,同等条件下对系统要求较低。因次像开发操作系统、大型应用程序、数据库系统时采用它,如 C/C++、Pascal/Object Pascal(Delphi)等。
一些网页脚本、服务器脚本及辅助开发接口对速度要求不高、但对不同系统平台间的兼容性有一定要求的程序则通常使用解释型语言,如 Java、JavaScript、VBScript、Python、Ruby、MATLAB 等。

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

Java语言比较特殊:

  • 可以说是编译型的,因为所有的Java代码都需要编译,.java 源程序不经过编译就什么用都没有
  • 可以说是解释型的,因为 java代码编译后不能直接运行,它是解释运行在JVM上的
  • 又可以说是编译型的,因为JVM为了提高效率会有一些JIT优化,又会把 .class 的二进制代码编译为本地可执行的代码运行

像 C、C++ 经过一次编译、没有经过第二次处理即可直接执行,固他们是编译型语言。
Java首先由编译器编译成 .class 类型的文件(并不是机器可识别的语言),然后通过虚拟机(JVM) 从 .class 文件中读一行解释执行一行,所有应该算是解释型语言。Java针对不同的平台有不同的 JVM,实现了真正意义上的跨平台。所以Java语言有一次编译到处执行的说法。

Java 的虚拟机机制:
在这里插入图片描述
在这里插入图片描述
参考链接:
什么是编译型语言和解释型语言?
Java到底是编译型语言还是解释型语言?

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Java是一种编译语言Java代码在编译之前需要先经过编译器的处理,将源代码编译成字节码文件,然后这些字节码文件可以在Java虚拟机(JVM)上解释执行。这种方式可以提高Java程序的性能,并且可以使得Java程序跨平台运行,因为不同的平台只需要安装相应的Java虚拟机即可。 ### 回答2: Java是一种混合语言,既可以编译也可以解释。Java程序首先通过编译器将源代码转换成字节码(bytecode),然后这些字节码可以在Java虚拟机(JVM)上解释执行。编译过程将源代码转换成字节码,可以提前发现一些语法错误,这可以减少程序运行时的错误。一旦程序编译完成,字节码可以在不同的操作系统上运行,只要安装有适当版本的Java虚拟机。解释执行过程通过JVM将字节码逐行解释成机器语言执行。这种解释执行方式使得Java具有跨平台的特性,同一份字节码可以在不同的操作系统和硬件上运行,因此被广泛用于开发跨平台应用程序。然而,为了提高Java程序的性能,还可以通过即时编译(Just-In-Time Compilation)将字节码转换成本地机器码执行,这种方式将一些频繁执行的代码编译成本地机器码,以提高程序的执行速度。因此,Java既具备了编译语言的静态检查和跨平台特性,又具备了解释型语言的灵活性和动态性能优化。 ### 回答3: Java是一种编译语言编译语言是指在运行程序之前需要将程序源代码通过编译器转换为机器可执行的二进制代码。在Java中,源代码是通过Java编译器(javac)将源代码(.java文件)编译Java字节码文件(.class文件)。然后,Java虚拟机(JVM)通过解释器(解释和执行字节码)将字节码转换为特定机器的指令执行程序。 与解释型语言不同,Java编译时会将代码转换为机器可以理解的形式,这使得Java在执行时更加快速和高效。此外,Java字节码在不同的平台上是可移植的,这意味着可以在不同的操作系统和硬件上执行同一份Java程序。 总之,Java是一种编译语言,通过编译器将源代码转换为字节码文件,并由Java虚拟机解释执行。这种设计使得Java程序在不同平台上具有高度可移植性和高效性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dataer__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值