编译型语言和解释型语言

(1)编译型语言:
使用针对特定平台的专门的编译器将源代码一次性编译成可执行的机器码,之后再执行。这包括了“编译”和“链接”两个步骤。
“链接”是把各个模块的机器码和库包装起来生成最终的可执行性程序。这个可执行性程序可以脱离开发环境在特定平台上独立运行
优点:运行效率高(因为是一次性编译后再运行的)
缺点:跨平台性差(可移植性差),若要移植,则需要用针对特定平台的编译器重新编译源代码。
代表语言:C、C++,Swift,Objective-C,Kotlin等

(2)解释型语言
事先不需要编译,是在特定的平台上,使用专门的***“解释器”对源程序逐行解释*成特定平台的机器码并“立即执行”(解释执行),不需要整体地进行“编译”和“链接”,是把这两个过程混合在一起执行。
优点:跨平台性强(可移植),只需要提供针对各个平台的解释器即可运行
缺点:运行效率较低,不能脱离解释器独立运行,运行时特定的平台上必须要有解释器实时翻译成机器指令。
代表语言:JS、Python、Ruby等

JAVA

既是“编译型语言”也是“解释型语言”,它需要先“编译”,后“解释”。
编译是通过javac生成一种不针对特定平台的.java文件(字节码文件),解释通过Java解释器(即Java虚拟机JVM)来解释并执行的。
即:
执行JAVA源程序的两个步骤
JVM:JAVA虚拟机,可运行字节码文件
所有的平台上的JVM都会向编译器提供相同的字节码程序接口,编译器只需要面向虚拟机(即字节码只面向JVM),生成虚拟机能理解的代码。所以JVM是Java的跨平台的关键。

在Java程序编写时,所有的程序部分必须包含在类里,不允许独立可执行语句等的存在。
如果需要某个类能够被解释器解释执行,则这个类必须包含main方法,main必须用public static修饰,必须用void声明该方法的返回值,且main的形参必须是字符串数组类型:String[] args. JVM是从main方法开始解释执行 的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值