Possible Duplicate:
What are bytecodes and how does the JVM handle them
How exactly does the JVM interpret byte codes when it is purely interpreting (rather than JITing or something in betweem)?
One approach that comes to mind is to have a native function for each byte code that takes the JVM state as an argument. A look-up table could be used to get the function pointer given the byte code, and then the function is called. Is that what it does, or is there something more efficient in the pure interpretation case?