Najpierw przyjrzyjmy się następującym terminom
Javac
is Java Compiler - Kompiluje kod Java do kodu bajtowego
JVM
to wirtualna maszyna Java - uruchamia / interpretuje / tłumaczy kod bajtowy na natywny kod maszynowy
JIT
is Just In Time Compiler - kompiluje podaną sekwencję instrukcji kodu bajtowego do kodu maszynowego w czasie wykonywania przed wykonaniem jej natywnie. Jego głównym celem jest wykonywanie poważnych optymalizacji wydajności.
Więc teraz znajdźmy odpowiedzi na twoje pytania ...
1) JVM: is it a compiler or an interpreter?
- Ans: Tłumacz
2) what about JIT compiler that exist inside the JVM?
- Odp: Jeśli przeczytałeś tę odpowiedź w całości, prawdopodobnie już ją znasz
3) what exactly is the JVM?
- Ans:
- JVM to wirtualna platforma, która znajduje się w pamięci RAM
- Jego składnik, program ładujący klasy, ładuje
.class
plik do pamięci RAM
- Kod Bajt kontrolny elementem kontroli JVM czy są jakieś łamanie ograniczenia dostępu w kodzie. (Jest to jeden z głównych powodów, dla których Java jest bezpieczna)
- Następnie komponent Execution Engine konwertuje kod bajtowy na wykonywalny kod maszynowy
Mam nadzieję, że ci to pomogło ...