Een
classfile bevat
bytecode die uitgevoerd kan worden door een
Java Virtual Machine. Classfiles kunnen inmiddels worden geproduceerd door diverse
compilers (
Javac,
JRuby,
Scala,
Groovy, Kotlin, Clojure, Jython, Fantom, Gosu, en andere), wanneer deze de
broncode compileert. Een classfile bestaat uit de volgende onderdelen:
Header
De header bevat een
magic number en versieinformatie. Een
magic number is een constante aan het begin van een file die aangeeft dat de file een bepaald soort data bevat. Dit geldt niet alleen voor classfiles, maar ook voor veel andere
bestandsformaten zoals bijvoorbeeld .GIF files en .ZIP files. Het
magic number waarmee iedere classfile begint is
0xCAFEBABE
.