《四》JVM之编译器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


JVM之编译器

编译+解释混合模式

  • java是解释执行的,一个class文件loading到内存中后,通过java的解释器【 bytecode intepreter】来执行。
  • java中有一个JIT【Just In-Time compiler】即时编译器,指的是有某些代码需要把他编译成为本地代码来执行
  • java是解释与编译混合的模式,即想解释就解释,想编译就编译
  • java默认的是混合模式
    • 使用解释器
    • 热点代码编译

假如有段代码,里面有循环,在执行的时候一开始是在解释器执行,结果在执行的时候有某段方法或者说某段方法,或者某一段循环,java虚拟机发现这段代码执行的频率特别高,java虚拟机觉得重复操作,干脆就把这段重复的代码编译成本地代码,将来在执行的时候就不需要进行解释执行了,直接在本地进行执行,大大提升了效率。

在这里插入图片描述

热点代码检测

在这里插入图片描述
下面有段代码循环遍历100000次查看三种类型的时间
在这里插入图片描述

  1. 点击idea这个按钮
    在这里插入图片描述
  2. 打开,这里Java虚拟机默认混合模式

在这里插入图片描述

  1. 运行结果,大约平均时间4s左右
    在这里插入图片描述
  2. 切换为纯解释型,查看多长时间,半天没有反应
    在这里插入图片描述
    在这里插入图片描述
  3. 纯编译模式大约3点多秒,比混合的快不少
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值