Этот вопрос уже имеет ответ здесь:
Я думаю, что JVM подобна Платформе.NET, корректна? Затем, каков JRE? Каково различие между JRE и JVM?
JRE - это среда, в которой работает виртуальная машина.
JRE - среда выполнения JAVA
JVM - виртуальная машина JAVA
JRE - это контейнер, JVM - это содержимое.
JRE включает JVM, которая фактически интерпретирует байтовый код и запускает вашу программу. Для этого JVM использует библиотеки и другие файлы, предоставленные JRE.
Я полагаю, вы могли бы сказать, что JRE похожа на .NET Framework, а JVM похожа на .NET CLR. Возможно, здесь есть некоторые важные отличия, о которых я не знаю.
JVM - это процесс, который запускает код Java, а JRE - это все файлы, распространяемые для формирования "среды", в которой работает JVM.
Согласно Wikipedia:
JVM, которая является экземпляром 'JRE' (Java Runtime Environment), вступает в действие, когда выполняется Java-программа. По завершении выполнения этот экземпляр собирается в мусор. JIT - это часть JVM, которая используется для ускорения времени выполнения. JIT компилирует части байт-кода, имеющие схожую функциональность, одновременно, и, следовательно, сокращает время, необходимое для компиляции.