解释执行和编译执行

本文探讨了Java的解释执行与编译执行的区别。解释执行是逐行翻译字节码,而编译执行以方法为单位一次性翻译。在JVM中,HotSpot虚拟机采用混合模式,结合解释执行和即时编译(JIT),C1编译器面向启动性能,C2面向服务端性能。JIT编译器通过识别热点代码,提高程序效率。Java现在是解释执行和编译执行并存,尤其在性能优化方面,编译执行扮演关键角色。
摘要由CSDN通过智能技术生成

Java解释执行和编译执行

区别

  • 编译执行是利用事先编写好的成为编写程序的机器语言程序,作为系统软件存放在计算机内,当高级语言源程序进入计算机,被这个翻译成目标程序,以完成源码要处理的运算并取得结果
  • 解释方式是源程序进入计算机内,解释程序边扫描边解释,逐句输入逐句翻译,计算机一步一步执行,并不产生目标程序

JAVA中的区别

  • 解释执行:将编译好的字节码一行一行地翻译为机器码执行。
  • 编译执行:以方法为单位,将字节码一次性翻译为机器码后执行。

字节码与机器码

  • 机器码是CPU直接读取运行的机器指令,运行速度非常快,但是晦涩难懂,一般接触不到
  • 字节码是一种中间状态的二进制代码,需要直译器转译后才可能成功的成为机器码

JVM中的解释执行和编译执行

在编译示时期,我们通过将源代码编译成.class ,配合JVM这种跨平台的抽象,屏蔽了底层计算机操作系统和硬件的区别,实现了“一次编译,到处运行” 。 而在运行时期,目前主流的JVM 都是混合模式(-Xmixed),即解释运行 和编译运行配合使用。

以 Oracle JDK提供的HotSpot虚拟机为例,在HotSpot虚拟机中,提供了两种编译模式:解释执行 和 即时编译

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值