为什么Java类文件格式的前四个字节是CAFEBABE?

时间:2010-05-11 07:01:07

标签: java

为什么Java类文件格式的前四个字节 CAFEBABE ? 是谁命名的?

您的观点/猜测?

来源:IBM Java Programing Dynamics

1 个答案:

答案 0 :(得分:84)

Java编程语言之父James Gosling曾经解释如下:

  

据我所知,我是这个人的罪魁祸首。我完全没有意识到NeXT连接。少量有趣的HEX词可能是比赛的来源。至于在Java中使用CAFEBABE的推导,它有点迂回:

     

我们曾经去过一个名叫St Michael's Alley的地方吃午饭。根据当地的传说,在深黑的过去,感恩的死者曾经在他们成长之前在那里表演。这是一个非常时髦的地方,绝对是一个Grateful Dead Kinda Place。当杰瑞去世时,他们甚至还建了一座佛教圣地。当我们去那里时,我们把这个地方称为Cafe Dead。

     

沿着这条线的某处,人们注意到这是一个十六进制数字。我正在重新编写一些文件格式代码并需要一些神奇的数字:一个用于持久对象文件,一个用于类。我使用CAFEDEAD作为目标文件格式,并且在为CAFE之后适合4个字符的十六进制单词(它似乎是一个好主题)时,我点击BABE并决定使用它

     

当时,除了历史的垃圾之外,它似乎并不是非常重要或注定要去任何地方。因此CAFEBABE成为类文件格式,CAFEDEAD是持久对象格式。但持久对象工具消失了,随之而来的是CAFEDEAD的使用 - 它最终被RMI取代。

来源:

有点相关的链接