What is Java Bytecode (.class file)?

For short, Java bytecode is an instruction set for JVM. For long keep reading...

Java program execution uses a combination of compilation and interpretation. Programs written in Java are compiled into machine language, but it is a machine language for a computer that doesn't really exist. This so-called "virtual" computer is known as the Java virtual machine (JVM). The machine language for the Java virtual machine is called Java bytecode. Being simpler Java bytecode is machine code in form of .class file. This .class file is executed by JVM to produce output. Java's intermediate compiled bytecode makes Java a platform independent language, and this is one of the main selling points of Java. Once the bytecode is generated, it can be run on any platform by Java Virtual Machine (JVM). Of course, a different Java bytecode interpreter is needed for each type of platform.

Java program execution is a two step process. In the first step Java compiler (javac) executes Java source code (file having extension .java)and produces the Java bytecode in form of .class file. In second step Java interpreter (Java virtual machine or JVM) executes .class file or Java bytecode. Java bytecode is a highly optimized set of instructions designed to be executed by the Java run-time system, which is called the Java Virtual Machine (JVM). That is, in its standard form, the JVM is an interpreter for Java bytecode.

Translating a Java program into bytecode helps makes it much easier to run a program in a wide variety of environments. The reason, as said earlier, is straightforward: only the JVM needs to be implemented for each platform. Once the run-time package exists for a given system, any Java program can run on it. Remember, although the details of the JVM will differ from platform to platform, all interpret the same Java bytecode. This is the write once, run anywhere slogan given by Sun Microsystems to illustrate the cross-platform benefits of the Java language. On the contrary, if a Java program were compiled to native code, then different versions of the same program would have to exist for each type of CPU connected to the Internet. This is, of course, not a feasible solution. Thus, the interpretation of bytecode is the easiest way to create truly portable programs.

Hope you have enjoyed reading about Java bytecode or .class file. Please do write us if you have any suggestion/comment or come across any error on this page. Thanks for reading!



Share this page on WhatsApp

Get Free Tutorials by Email

About the Author

is the founder and main contributor for cs-fundamentals.com. He is a software professional (post graduated from BITS-Pilani) and loves writing technical articles on programming and data structures.