java - 为什么Java类文件版本从45开始?
问题描述
根据JVM规范:
JDK 版本 1.0.2 中的 Oracle Java 虚拟机实现支持类文件格式版本 45.0 到 45.3(含)。JDK 发行版 1.1.* 支持 45.0 到 45.65535(含)范围内的类文件格式版本。对于 k ≥ 2,JDK 版本 1.k 支持 45.0 到 44+k.0(含)范围内的类文件格式版本。
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html
我想知道,为什么他们从45开始版本控制而不是从1或0开始?
解决方案
为什么Java类文件版本从45开始?
在第一个公开发布的版本(Java 1.0.2)之前存在 Java 版本。
Java 最初是在 1991 年作为Oak编程语言诞生的。它在 1994 年更名为 Java,第一次公开发布是在 1996 年。
可以安全地假设小于 45 的类文件版本用于 Java 的早期(预发布)版本,可能还用于 Oak。在早期,开发人员很可能对字节码指令集和类文件格式的其他方面进行了大量更改。那将需要定期“碰撞”类文件版本号。
以上主要是推测。关于 Oak 和 pre-1.0 Java 的公开信息很少。但是,1993 年的Oak 规范文本表明,他们已经将 Oak 源代码编译为存储在“.class”文件中的字节码,每个类一个。
推荐阅读
- firebase - 不明白为什么我在使用 image_picker 时会出现这个错误
- javascript - React 本机项目不运行 iOS
- javascript - Linux electron npm 给我 install-app-deps:未找到
- android - 未生成 Firebase 消息传递令牌
- reactjs - 如何将 handleTheme() 函数发送到路由?
- android - 如何在 Android 中使用带有边缘和彩色区域的背景
- spring-security - Spring Security SAML2 服务提供者 - RelyingPartyRegistration.entityId() vs RelyingPartyRegistration.assertingPartyDetails(c -> c.entityId())
- python - 使用 python 和 selenium 进行自动化 - 每次访问都会更改框架名称
- xamarin - 如何减少 Xamarin 表单中的文本输入显示长度?
- html - VSCode:点击快捷方式时停止选择空格