Java的解释执行与编译执行

理解Java的几个编译器

前端编译器:把.java文件转变成.class文件。包括Sun的Javac、Eclipse JDT中的增量式编辑器(ECJ)

后端运行期编译器(JIT编译器,Just In Time Compiler):把字节码转成机器码。包括HotSpot VM的C1、C2编译器

静态提前编译器(AOT编译器,Ahead Of Time Compiler):把*.java编译成本地机器码。包括GNU Compiler for the Java(GCJ)、Excelsior JET

Java一开始被定位为“解释执行”的语言,但是现在主流的虚拟机中都包含了即时编译器(也包含解释器),.class文件中的代码到底会被解释执行还是编译执行,只有虚拟机自己才能判断。

Java的特殊的解释执行机制

把Java和其他典型的解释型语言对比,例如Python,你会发现,Java的解释执行有点与众不同。它为什么要先编译为.class的字节码,然后有JVM对字节码进行解释执行,而不是像Python那样直接解释执行源代码。这个问题具体可以参考 Java为什么解释执行时不直接解释源码?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值