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
    评论
Java文件版本号控制通常使用比较系统或系统文件版本号大小的通用函数来实现。这些函数可以比较版本号的大小,找出最大的版本号。一个常见的实现方式是将版本号转换为整数或字符串进行比较。在Java中,可以使用String的compareTo方法或自定义的比较函数来实现版本号的比较。引用 另外,Java数据库版本控制实例是一种基于备忘录设计模式的实现方式。它的主要功能是对数据操作进行版本控制,类似于SVN。用户可以进行版本提交、修改和恢复等操作。引用这种实例可以帮助开发人员跟踪和管理数据库的变更,确保对数据库的修改和更新是有序和可追溯的。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [在系统中需要版本管理时,比较系统或系统文件版本号的大小的通用函数,java实现](https://download.csdn.net/download/jianlongz/6710351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [java版本控制(数据库版本控制)](https://download.csdn.net/download/oceangray/4946281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值