What is Java ByteCode and Java Virtual Machine?

What Is The Java ByteCode?

In simple words, bytecode is a set of instructions that are generated when a Java program is compiled. These instructions are highly optimized in nature and are designed to be executed by the Java Virtual Machine (JVM). Any platform on which java is installed can run bytecode.

First, the output of a Java compiler is not an executable code. It is bytecode. Java bytecode is the machine code in the form of a ‘.class’ file.

This comes as a bit of surprise to java newbies. As in most other modern programming languages, the code is compiled into an executable code because of performance concerns.

The Java bytecode is not completely compiled. Its rather just an intermediate code sitting in the middle because it still has to be interpreted and executed by the JVM installed on the specific platform such as Windows, Mac or Linux.
Upon compilation, the Java source code is converted into the .class bytecode.

But What Is The JVM?

JVM is an engine that provides runtime environment to drive the Java Code or applications. It converts Java bytecode into machines language. JVM is a part of JRE(Java Run Environment).

The Java bytecode gets processed by the Java virtual machine (JVM) instead of the processor. It is the job of the JVM to make the necessary resource calls to the processor in order to run the bytecode.

How does Java ByteCode Solve The Problem of Portability?

Bytecode helps us achieve platform independence in java.

·T The fact that the output of a Java compiler is not executable code helps solve this problem

Translating a Java program into bytecode makes it much easier to run a program in a wide variety of environments because 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. Although the details of the JVM may differ from platform to platform, all understand the same Java bytecode. 

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. This is, of course, not a feasible solution. Thus, the execution of bytecode by the JVM is the easiest way to create truly portable programs.

Java Byte Code is the language to which Java source is compiled and the Java Virtual Machine understands. Compiled languages have to be specifically compiled for each different type of computers. A Java program only needs to be converted to byte code once, after which it can run on any platform for which a Java Virtual Machine exists.

Portability ensures that Java can be implemented on a wide array of platforms like desktops, mobile devices, severs and many more. Supporting this, Sun Microsystems captioned JAVA as “write once, read anywhere” or “WORA” in resonance to the bytecode interpretation. 

How does Java ByteCode Solve The Problem of Security?

Because the JVM is in control, it can contain the program and prevent it from generating side effects outside of the system. safety is also enhanced by certain restrictions that exist in the Java language.

So, does it make the program run slower than if it was compiled to an executable? Because bytecode has been highly optimized, the use of bytecode enables the JVM to execute programs much faster than you might expect. So, in terms of performance, it is not far behind languages which are compiled to executables.


When we write a program in Java and compile it, a bytecode is generated.

2.    This is a ‘.class’ file which we can run on any other platform.

3.   The bytecode generated is run by the JVM and not the processor in consideration. Only basic java installation is needed on any platform that we want to run our code on. Resources required to run the bytecode are made available by the JVM, which calls the processor to allocate the required resources.

Be the first to comment

Leave a Reply

Your email address will not be published.