What is the intermediate representation used by Java that runs on the JVM?

The story behind the answer

The intermediate representation used by Java that runs on the JVM is called bytecode. Java source files are compiled into bytecode, which the JVM can execute on many different hardware and operating-system combinations.

Java bytecode is stored in class files, usually identified by the .class extension. Instead of containing instructions tailored to one processor, it follows the instruction set and rules defined by the JVM specification. This creates a layer between Java source code and the host computer.

Before execution, the JVM loads and verifies class files. It can then interpret the bytecode or compile selected sections into native machine code with a just-in-time compiler. That combination gives Java both portability and strong runtime performance.

Bytecode is not the same as source code, assembly code, or final machine code. Source code is written by programmers; bytecode is the compiler’s portable output; and machine code is processor-specific code executed directly by hardware. Other JVM languages can also target this same bytecode format.

Source: Wikipedia · fact-checked Aug. 2026

Add question to a list

Choose a list to keep this question in: