Asked in Java Programming
How does a java compiler works?
October 12, 2009 4:44AM
The working of the Just-In-Time compiler is more or less the
same for all the JIT compilers. The source code is compiled to the
bytecode by the Java Virtual Machine (JVM).
The JVM also comes with the JIT compiler which is used when the application is run. Upon executing the application the bytecode is converted to the machine code or the native code that is run by the machine.
The job of the JIT compiler is to convert this bytecode to the machine code. All the JIT compilers work in the same manner. The JIT compiler uses a V-table which is a pointer to the methods in the class. This internal table is used to compile the methods to native code.
The address of the JIT compiler itself is placed in the V-table and this address is called during execution and the JIT compiler executes the native code and stores that address to the V-table. And from now on this address is called whenever that method is called and the native code is executed.
Only during the first call to a method it is compiled and for
the subsequent calls the native code for that particular method is
called. The V-table maintains the addresses of the native code for
all the methods that are compiled. V-table also maintains another
table which has the addresses of the bytecode itself in case there
is a need to compile it for the first time.