对于 JVM 字段描述符,为什么使用 Z 表示布尔型、L 表示类实例、J 表示长型?

Niu*_*ang 5 naming jvm

对于 Jvm 字段描述符,如以下链接所述: https ://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.3.2

它使用 Z 来描述布尔类型,J 表示长整型,L 表示类实例。

有人知道为什么吗?

我的意思是我注意到 B 已经按字节使用了,但为什么使用 Z 来表示布尔值?为什么不用 L 表示长,用 R 表示参考呢?

Pet*_*rey 4

不过,我不确定您是否会得到权威的答案。

  • J有时在其他上下文中比下I一个字母更宽(类似地H半整数/短,或 I 的上一个字母)
  • L对于语言数据结构?
  • Z一封不会用于其他任何用途的信件。cfZ用于“Zulu”或 GMT 时间作为默认时间。

顺便说一句,他们可以使用b布尔值,因为 JVM 区分大小写。

如果你看一下字节码的细节,很多选择似乎都是临时的,事后看来可能做得更好,但当时 Java 还很新,根本不清楚它会像现在这样流行。 。