首页 > 解决方案 > 为什么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开始版本控制而不是从10开始?

标签: javajvm

解决方案


为什么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”文件中的字节码,每个类一个。


推荐阅读