Java class file

On 11 December 2006, the class file format was modified under Java Specification Request (JSR) 202.

The history of this magic number was explained by James Gosling referring to a restaurant in Palo Alto:[2] "We used to go to lunch at a place called St Michael's Alley.

According to local legend, in the deep dark past, the Grateful Dead used to perform there before they made it big.

I used CAFEDEAD for the object file format, and in grepping for 4 character hex words that fit after "CAFE" (it seemed to be a good theme) I hit on BABE and decided to use it.

At the lowest level the file format is described in terms of a few fundamental data types: Some of these fundamental types are then re-interpreted as higher-level values (such as strings or floating-point numbers), depending on context.

This includes values such as numbers of all sorts, strings, identifier names, references to classes and methods, and type descriptors.

Other integral types appearing in the high-level language, such as boolean, byte, and short must be represented as an integer constant.

However within the low-level Class reference constants, an internal form appears which uses slashes instead, such as "java/lang/Object".