对于JVM字段描述符,为什么使用Z表示布尔值,L表示类的实例,而J表示长整数?

问题描述 投票:2回答:1

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

它使用Z来描述布尔类型,J用于描述long,L用于类实例。

谁知道为什么?

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

jvm naming
1个回答
2
投票

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

  • J有时在其他情况下使用比I宽,因为它是下一个字母(类似H为半int / short,或前一个字母给我)
  • L用于语言数据结构?
  • Z写了一封不会用于其他任何事情的信件。 C.F. Z用于“Zulu”或GMT时间作为默认时间。

BTW他们本可以使用b作为布尔值,因为JVM区分大小写。

如果你看一下字节码的细节,很多选择看起来都是临时的,事后看来可能做得更好,但当时Java很新,而且一点都不清楚它会像它一样受欢迎。

© www.soinside.com 2019 - 2024. All rights reserved.