Class文件版本号

Class文件版本号


表1 Class文件格式
类型名称数量
u4magic1
u2minor_version1
u2major_version1
u2constant_pool_count1
cp_infoconstant_poolconstant_pool_count - 1
u2access_flags1
u2this_class1
u2super_class1
u2interfaces_count1
u2interfacesinterfaces_count
u2fields_count1
field_infofieldsfields_count
u2methods_count1
method_infomethodsmethods_count
u2attributes_count1
attribute_infoattributesattributes_count

如Class文件表结构所示,Class文件的版本号信息排列在魔数之后:第5、6字节为次版本号,第7、8字节为主版本号

Java的版本号是从45开始的,JDK1.1之后的每个大版本的主版本号向上加1(JDK1.0 ~ 1.1使用45.0 ~ 45.3)。

高版本的JDK能够向下兼容更低版本的Class文件,但不能运行更高版本的Class文件,即使文件格式格式并未发生任何变化,虚拟机也必须拒绝执行超过其版本号的Class文件。


  1. 以十六进制打开HelloWorld.class 文件

在这里插入图片描述

  1. 以二进制打开HelloWorld.class文件

在这里插入图片描述

上图表明,次版本号为0,主版本号为52,说明本文件可以被JDK1.8或以上版本的虚拟机执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值