Почему первые четыре байта файла класса Java имеют формат CAFEBABE? - PullRequest
39 голосов
/ 11 мая 2010

Почему первые четыре байта формата файла класса Java CAFEBABE ? Кто назвал это?

Ваши взгляды / догадки?

Источник: IBM Java Programing Dynamics

1 Ответ

85 голосов
/ 11 мая 2010

Джеймс Гослинг, отец языка программирования Java, однажды объяснил это следующим образом:

Насколько я знаю, я виноват в этом. Я совершенно не знал о связи NeXT. Небольшое количество интересных шестнадцатеричных слов, вероятно, является источником совпадения. Что касается использования CAFEBABE в Java, то оно несколько сложное:

Мы обычно ходили на ланч в место, называемое Аллеей Святого Михаила. Согласно местной легенде, в глубоком темном прошлом Grateful Dead выступали там до того, как стали великими. Это было довольно прикольное место, которое определенно было Grateful Dead Kinda Place. Когда Джерри умер, они даже установили маленький буддийский храм. Когда мы ходили туда, мы называли это место Кафе Мертвым.

Где-то вдоль линии было замечено, что это был шестнадцатеричный номер. Я пересматривал некоторый код формата файла, и мне понадобилась пара магических чисел: одно для постоянного объектного файла, а другое для классов. Я использовал CAFEDEAD для формата объектного файла, а в grepping для 4-х символьных шестнадцатеричных слов, подходящих после CAFE (это казалось хорошей темой), я нажал на BABE и решил использовать его.

В то время казалось, что ужасно важно и не суждено куда-то идти, кроме мусорного ведра истории. Таким образом, CAFEBABE стал форматом файла класса, а CAFEDEAD был постоянным форматом объекта. Но постоянный объект исчез, и вместе с ним пошло использование CAFEDEAD - его в конечном итоге заменили RMI.

Источник:

Несколько связанных ссылок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...