What are the differences between decompiling and disassembling a .class file?

John Mitchell

Basically, the Java byte codes in .class files are the "assembly language" of the Java Virtual Machine. Disassembling transforms the .class file contents from binary into a direct, textual representation of the bytecodes (i.e., JVM "assembly language"). Decompiling transforms the .class file contents into a Java source code textual representation (i.e., a .java file).