Bytecode
Es un lenguaje intermedio. El programador, durante el proceso de desarrollo escribe el código fuente en Java y lo pasa por un compilador, que da lugar a los bytecodes.
En la etapa de ejecución, estos bytecodes, independientes del equipo o dispositivo de destino, son interpretados y ejecutados instrucción a instrucción por una máquina virtual Java (Java VM). De este modo, frente a un único proceso de compilación tendremos tantos procesos de interpretación como veces ejecutemos la aplicación correspondiente. Así, cada intérprete Java, tanto si se trata de una herramienta de desarrollo como de un navegador web con capacidad para ejecutar applets (pequeñas aplicaciones escritas en Java) se puede considerar como una implementación de dicha máquina virtual.