En primer lugar, vamos a tener una idea clara de los siguientes términos
Javac
es el compilador Java - Compila el código Java en bytecode
JVM
es Java Virtual Machine - Se ejecuta/Interpreta/traduce Bytecode en código máquina nativo
JIT
es justo a tiempo compilador - compila la secuencia de instrucciones de código de bytes dado al código de máquina en el runtime antes de ejecutarlo de forma nativa. Su objetivo principal es hacer grandes optimizaciones en el rendimiento.
Así que ahora, vamos a encontrar las respuestas a sus preguntas.
1) JVM: is it a compiler or an interpreter?
- Respuesta: intérprete
2) what about JIT compiler that exist inside the JVM?
- Respuesta: Si usted lee esta respuesta completamente, probablemente lo saben ahora
3) what exactly is the JVM?
- Resp .:
- JVM es una plataforma virtual que reside en su RAM
- Su componente, clase Loader carga el archivo en la memoria RAM
.class
- El componente Byte código verificador en JVM comprueba si hay violaciónes de restricción de acceso en su código. (Esta es una de las razones principales por qué Java es seguro)
- A continuación, el motor de ejecución componente convierte el bytecode en código máquina ejecutable
Hope esto le ayudó ..
La JVM es una máquina virtual. Bytcode entra, los efectos observables del programa suceden. Todo lo demás es un detalle de implementación. – delnan
Sí, no existe la "JVM", existen múltiples implementaciones de la especificación. – paxdiablo
@delnan, por favor, escríbalo como respuesta. Realmente quisiera volver a votar tal respuesta. – aioobe