The Java virtual machine or JVM is a Virtual machine that runs Java byte code, the code produced by a Java compiler or compilers from other languages which produce this code.
Programs written in Java are compiled into a standardized portable binary format, which typically comes in the form of files with the .class[?] extension. A program may consist of many classes, in which case, every class will be in a different file. The first 4 bytes in hexadecimal of each class must be CA FÉ BA BE. Class files may be packaged together in a .jar[?] file, with the exact same format as a .zip file, optionally with a few extra special files added.
This binary is then interpreted at runtime by a JVM. The main interpretation loop is described by the following pseudo-code
do { fetch an opcode; if (operands) fetch operands; execute the action for the opcode; } while (there is more to do);
The JVM has a stack based architecture. Each thread has its own program counter.
The JVM has instructions for the following groups of tasks
Each particular operating system needs a JVM specifically for it. These JVMs interprete the byte code semantically the same way. But the actual implementation may be different.
The specification for the JVM is published in book form and HTML and anybody is allowed to write an implementation of it. The preface states:
See www.kaffe.org (http://www.kaffe.org/) for an example of a group of developers having done this.
See also:
Search Encyclopedia
|
Featured Article
|