About Java
The Java environment is composed of a number of system components. You use these components at compile time to create the Java program and at run time to execute the program. After you write a Java program, you pass the program through the Java compiler. The compiler then reads the statements in the program and translates them into a machine independent format called bytecode.
Java compiler:
Java compiler, which compiles the Java source code into virtual machine bytecodes. Filenames for bytecode files have the form xxxxx.class.
Bytecode files, which are very compact, are easily transported through a distributed system like the Internet. You load and run the resulting bytecode file to execute the Java program. The compiled Java code will be executed at a designated later time, or run time. The catalyst may be a World Wide Web page that refers to the Java applet. The class loader on the requesting machine will download the bytecode file. It may also request other bytecode files, located elsewhere, needed to correctly run the program.
Java interpreter:
Java bytecode is interpreted by the Java Virtual Machine. Interpretation of program code by another program is slower than directly executing processor instructions. To speed execution, some Java environments include a “Just In Time” compiler that translates bytecodes to processor instructions before execution. This can dramatically increase processing speed of Java program code, but will generally have no effect on network load speed. Once the bytecode files are no longer needed, they are discarded. The Java system architecture also supports conversion of the bytecode files into a computer dependent set of instructions that you can save and execute at a later time.

