En mayo de 1996, Bill Venners preparaba su segundo artículo para JavaWorld, The Class File Lifestyle. Inició un hilo en comp.lang.java para preguntar por qué los cuatro primeros bytes de todos los archivos de clase de Java son 0xCAFEBABE. Este número mágico permite a las herramientas reconocer rápidamente datos que probablemente pertenecen a una clase.

Las primeras respuestas se centraron en las palabras que pueden escribirse con dígitos hexadecimales. Rolf Howarth señaló que las letras A a F dejan pocas opciones relacionadas con Java o el café. Alastair Mayer calculó el valor decimal, 3405691582, y consideró práctico y distintivo usar un número de 32 bits. Comparó CAFE BABE con posibilidades como A FAB CAFE, CAFE FACE, CAFE A FAD y A BAD CAFE. Mayer también recordó que el Burroughs B6700 inicializaba su memoria no inicializada de 48 bits con 0xBADBADBADBAD. Después propuso 0xC0FFEE, escrito como 0x00C0FFEE para ocupar los 32 bits. Al interpretar los ceros como letras O, aparecía OO COFFEE, junto con una referencia a la programación orientada a objetos.

El debate reunió más ejemplos de valores hexadecimales legibles. David N. Smith recordó un volcado de memoria de un S/360 donde un valor de coma flotante fuera de rango empezaba por 0xBAD. Paul Snively citó 0xDEADBEEF como un valor ficticio habitual recogido en The New Hacker’s Dictionary. También describió una práctica de depuración en Macintosh que utilizaba la dirección 0, NIL! y 0x50FFC001. Vivian Man Cheng recordaba 0xCAFEBABE en los fat binaries de NeXTSTEP, que agrupaban binarios para distintos procesadores. David Harvey-George relacionó 0xFEEDFACE con Motorola y 0xCAFEBABE con Intel. James Lynn sugirió una posible inspiración en una cafetería y mencionó CAFEBEEF y DEADCAFE. Lee Crocker recordó el uso de 0xDEADBEEF en antiguos sistemas IBM. William Halchin indicó que AIX en RS6000 utilizaba 0xdeadbeaf para representar almacenamiento no inicializado.

Patrick Naughton dio la respuesta el 26 de mayo de 1996. El valor se había elegido antes de que el lenguaje recibiera el nombre Java. El equipo buscaba algo divertido, único y fácil de recordar. 0xdeadbabe quedó como segundo candidato. La conexión con el café de Peet’s Coffee fue una coincidencia. Otras respuestas añadieron que los archivos de arena de IRIX usaban 0xdeadbabe y que un kernel de Solaris para depuración rellenaba los bloques liberados por kmemfree() con 0xCAFEFEED.