The model used by a JVM accepts a form of computer intermediate language commonly referred to as Java bytecode.
This language conceptually represents the instruction set of a stack-oriented, capability architecture.
Java Virtual Machines operate on Java bytecode, which is normally (but not necessarily) generated from Java source code; a JVM can also be used to implement programming languages other than Java.
For example, Ada source code can be compiled to Java bytecode, which may then be executed by a JVM.
Read the rest of the article here