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

zen*_*ngr 43 java

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

你的观点/猜测?

来源:IBM Java编程动态

pol*_*nts 90

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

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

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

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

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

资源:

有点相关的链接