Warum haben die ersten vier Bytes des Java-Klassendateiformats CAFEBABE?

Lesezeit: 2 Minuten

Benutzer-Avatar
zengr

Warum sind die ersten vier Bytes des Java-Klassendateiformats CAFEBABE? Wer hat es benannt?

Eure Ansichten/Vermutungen?

Quelle: IBM Java Programming Dynamics

Benutzer-Avatar
polygenelubricants

James Gosling, der Vater der Programmiersprache Java, hat es einmal so erklärt:

Soweit ich weiß, bin ich in diesem Fall der Schuldige. Ich war mir der NeXT-Verbindung überhaupt nicht bewusst. Die geringe Anzahl interessanter HEX-Wörter ist wahrscheinlich die Quelle der Übereinstimmung. Wie für die Ableitung der Verwendung von CAFEBABE in Java ist es etwas umständlich:

Wir gingen zum Mittagessen in einen Ort namens St. Michael’s Alley. Der lokalen Legende nach traten die Grateful Dead in der tiefen dunklen Vergangenheit dort auf, bevor sie groß herauskamen. Es war ein ziemlich unkonventioneller Ort, der definitiv ein Grateful Dead Kinda Place war. Als Jerry starb, errichteten sie sogar einen kleinen buddhistischen Schrein. Als wir dort hingingen, bezeichneten wir den Ort als Cafe Dead.

Irgendwo in der Zeile wurde bemerkt, dass dies eine HEX-Zahl war. Ich überarbeitete einen Dateiformatcode und brauchte ein paar magische Zahlen: eine für die persistente Objektdatei und eine für Klassen. ich benutzte CAFEDEAD für das Objektdateiformat und beim Greifen nach Hexadezimalwörtern mit 4 Zeichen, die danach passen CAFE (Es schien ein gutes Thema zu sein) Ich schlug weiter BABE und beschloss, es zu verwenden.

Zu dieser Zeit schien es nicht besonders wichtig oder dazu bestimmt, irgendwohin zu gehen, außer in den Mülleimer der Geschichte. So CAFEBABE wurde zum Klassendateiformat und CAFEDEAD war das persistente Objektformat. Aber die Funktion für dauerhafte Objekte verschwand und damit auch die Verwendung von CAFEDEAD – es wurde schließlich durch RMI ersetzt.

Quelle:

Etwas verwandte Links

  • Awww. Er verpasste die Gelegenheit dazu CAFEFEED. (OK, nicht perfekt, da es sich um ein wiederholtes Byte handelt …)

    – Donal Fellows

    11. Mai 2010 um 7:19 Uhr

  • @DonalFellows meinst du CAFEDEAD und nicht CAFEFEED Rechts?

    – Joey Rohan

    19. September 2014 um 10:51 Uhr

  • Wenn ich mich recht erinnere, frühes MacOS (pre OS-X) verwendet 0xDEADBEEF für ungültige Zeiger (oder vielleicht Handles).

    – Matthew Moss

    3. Juni 2020 um 13:49 Uhr


1144080cookie-checkWarum haben die ersten vier Bytes des Java-Klassendateiformats CAFEBABE?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy