making Java program a two stage system. First JAVA compiler translates source code into byte code
instructions. Byte codes are not machine instructions and therefore in the second stage Java program
interpreter generates machine code that can be directly executed by the
machine that is running the JAVA program.
Because the Java program VM is available on many different operating systems, the same .class files are capable of running on Microsoft Windows, the Solaris TM Operating System (Solaris OS), Linux, or Mac OS. Some virtual machines, such as the Java Hotspot virtual machine, perform additional steps at runtime to give your application a performance boost. This includes various tasks such as finding performance bottlenecks and recompiling (to native code) frequently used sections of code.