java-字节码到指令流程

  1. 先通过javac编译,获得class字节码文件
  2. class文件在内存中表现为十六进制的数值
  3. 这些数值有java静态代码,也包含有可执行的代码
  4. 可执行的代码是在class文件结构中属性为attribute_info表示的,它联系着具体的代码数据
  5. 使用javap -p -c Test.class查看代码对应的字节码指令
  6. 每个指令对应一位16进制数值
  7. 每个16进制数值对应一段机器码
  8. 解释成机器码这过程就是编译,模板解释有冗余的代码,需要优化
  9. 通过jit技术对解释进行优化,当前出现的编译器有c1和c2,c1快,c2质量高
  10. 当前jvm都是是分层编译
  11. 执行完后 ,就会把机器码缓存下来,可以通过jvm参数设置代码缓存,XX:InitialCodeCacheSize 设置codeCache初始大小,一般默认是48M,XX:ReservedCodeCacheSize 设置codeCache预留的大小,通常默认是240M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值