编译器和解释器

先盗一张图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

一般来说,编译器是运行前将代码编译成二进制文件,其包含的是可直接执行的机器指令;解释器则是运行时,一条一条将代码解释成平台可执行的机器指令。看上去是编译器比解释器快,是因为执行的是已经编译好的机器指令,而解释器每次运行的都会解释执行。实质上,编译器编译代码时间加上执行时间要比解释器多。

JAVA严格来说是半编译半解释的语言。

如上图所示,java是先编译成字节码(非纯二进制代码),即由.java文件编译成.class文件,再由JVM解释器解释执行。

现在解释两个问题:

1、为什么JAVA执行相对比较快?

那是JVM解释的是编译后的字节码,这比直接解释源码要快。

2、为什么JAVA可以跨平台?

首先,编译器执行后的程序所有情况下都可以直接运行的,还要看平台的系统,不同系统执行不同的编译版本。

而JVM可以跨平台安装,其解释执行的阶段把.class文件中的字节码解释成对应平台可执行的机器指令,所以java代码可以做到跨平台执行。

转载于:https://www.cnblogs.com/ustcwx/p/7586731.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值