The Java virtual machine is the abstract execution machine specified for Java class files and bytecode. It defines runtime data areas, stack frames, operand stacks, local variables and instruction behavior, while leaving implementation choices such as interpretation and just-in-time compilation open.[ref]
For example, two integer loads followed by an integer-add instruction obtain operands from a stack frame and leave their sum on its operand stack. A method call establishes a new stack frame and later returns a result to its caller. These specified effects remain the contract even if a compiler keeps the values in native registers and emits one machine instruction. The virtual-machine interface therefore supports portable compiled code without requiring every implementation to execute bytecode one instruction at a time.
Articles by others on the same topic
There are currently no matching articles.