【问题标题】:Why do Java class file versions start from 45?为什么Java类文件版本从45开始?
【发布时间】:2019-10-19 19:18:06
【问题描述】:

根据JVM规范:

Oracle 的 Java 虚拟机在 JDK 1.0.2 版中实现支持类文件格式版本 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 jvm


【解决方案1】:

为什么Java类文件版本从45开始?

在第一个公开发布的版本(Java 1.0.2)之前存在 Java 版本。

Java 最初是在 1991 年作为 Oak 编程语言诞生的。它在 1994 年更名为 Java,第一次公开发布是在 1996 年。

可以肯定的是,低于 45 的类文件版本用于 Java 的早期(预发布)版本,可能还用于 Oak。在早期,开发人员很可能对字节码指令集和类文件格式的其他方面进行了大量更改。那将需要定期“碰撞”类文件版本号。

以上内容主要是推测。关于 Oak 和 1.0 之前的 Java 的公开信息很少。但是,1993 年的 Oak specification 的文本表明他们已经将 Oak 源代码编译为存储在“.class”文件中的字节码,每个类一个。

【讨论】:

  • 谢谢,这似乎是最有意义的。橡木规格是宝物,我什至不知道它的存在。
猜你喜欢
  • 2013-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 2013-09-27
相关资源
最近更新 更多