jvm之字节码解读——字节码文件结构解析(魔数、版本号)

根据前文 jvm之字节码解读——认识字节码 ,我们可知,java的字节码文件结构为

Magic Number(魔数)

根据上图可知,魔数在字节码文件里占据4个字节,由于1个十六进制占据4位,所以2个十六进制就占据1个字节,所以4个字节,就是占据8个十六进制,那么,魔数对应的字节码内容就是

魔数是一个固定的数值,它的意义在于能快速判断一个文件是不是字节码文件,如果不符合这种规则开头的,就不是字节码文件了

PS:魔数的定义为CAFE BABE,由来也挺有意思的,CAFE是咖啡,java的图标就是一个咖啡图案,CAFE BABE大概翻译成“咖啡宝贝”的意思

Version(版本号)

从文件结构可知,跟在魔数后面的4个直接,就是Version(版本号),它的内容为

其中,前面2个字节(0x00)是小版本号minor_version,后两个字节(0x34)是大版本号major_version

版本号的作用是,如果你用低版本的jdk来解析高版本的字节码,是会抛异常的(哪怕没用到高版本的特性)

ps:这里的0x34表示jdk1.8

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值