Java™ programs can execute in a JVM running on any supported platform through the ability of the JVM to interpret Java bytecode. You create Java bytecode class files using a Java compiler, such as VisualAge® for Java or WebSphere Studio Application Developer, and these classes can be executed by a JVM without the need for any further translation.
This mode of executing Java classes is by interpretation, but a more efficient method in terms of performance is to convert the Java bytecode into z/OS machine code, like load modules. The JIT-compile function of the JVM provides this service. It produces JIT-compiled versions of frequently used Java methods, normally at variable times during the usage of the methods. The JIT-compiling process incurs additional CPU time and uses extra Language Environment storage, but provides more efficient executable code. The CPU cost of the Java applications reduces after the JIT-compiled code is produced.