java基础:字节码验证

编写好的java代码,编译成class文件(字节码)后,在被JVM加载到内存中的时候,是需要做字节码验证的。

过程如下(加载到内存的途径有很多,这里描述的是通过网络,也可以是通过本地磁盘):
在这里插入图片描述

一个class文件被加载到JVM内存之后,首先要经过字节码验证,主要包含:

  1. 检查当前class文件的版本和JVM的版本是否兼容
  2. 检查当前代码是会破坏系统的完整性
  3. 检查当前代码是否有栈溢出的情况
  4. 检查当前代码中的参数类型是否正确
  5. 检查当前代码中的类型转换操作是否正确

验证通过过,再确定哪些代码是解释执行的,哪些代码是JIT即时编译执行的:
(1)解释执行
class文件内容需要让JVM进行解释,解释成计算机可以执行的代码。整体效果就是JVM解释一行代码就执行一行代码。所以如果java代码全是这样的运行方式的话,效率会稍低一些
(2)JIT(Just In Time)即时编译
执行代码的另一种方式,JVM可以把java中的热点代码直接编译成计算机可以运行的代码,这样接下来再调用这个热点代码的时候,就可以直接使用编译好的代码让计算机直接运行,可以提高运行效率。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值