Или Java Virtual Machine - среда для запуска Джава-приложений. Виртуальная машина читает Байт-код и передаёт команды процессору. Байт-код - это скомпилированный исходный код. Он нечитаем для человек и понятен для JVM. Чтобы получить Байт-код, мы должны написать программу на Джаве и отдать её специальному компилятору javac. Например, я пишу код в файле application.java. Передам его компилятору, и получу application.class.
При запуске программы операционная система выделяет необходимый объём оперативной памяти под JVM. И у разработчиков нет прямого доступа к памяти системы.
JVM выполняет ещё программы, написанные на других языках программирования: Scala, Kotlin, Groovy. Их исходники тоже компилируются в Байт-код.
Неплохая статья о JVM и Байт-коде: https://bit.ly/2ENapHC