hostprofi.ru
Подобрать хостинг
Термин·буква J

JVM

краткое определение

JVM (Java Virtual Machine) — виртуальная машина, исполняющая байт-код Java и других JVM-языков (Kotlin, Scala, Groovy). Обеспечивает принцип WORA (Write Once, Run Anywhere) — байт-код работает на любой платформе, где установлена JVM.

JVM (Java Virtual Machine) — среда выполнения, обеспечивающая платформенную независимость Java. Компилятор Java превращает исходный код в байт-код (.class-файлы), который исполняет JVM. JVM сама транслирует байт-код в инструкции конкретной процессорной архитектуры.

Компоненты JVM

  • Class Loader — загружает .class-файлы в память, верифицирует байт-код.
  • JIT-компилятор (HotSpot) — компилирует горячие участки кода в нативный машинный код. C1 (быстрая компиляция) и C2 (глубокая оптимизация) — два уровня компиляции.
  • Garbage Collector — автоматическое управление памятью. GC-алгоритмы: G1GC (по умолчанию Java 9+), ZGC (низкие паузы, Java 15+), Shenandoah.
  • Java Heap — область памяти для объектов. Настраивается: -Xms512m -Xmx2g.

JVM-языки

На JVM работают не только Java-программы: Kotlin (Android, backend), Scala (Spark, Akka), Groovy (Jenkins, Gradle), Clojure (функциональное программирование). Все они компилируются в байт-код и используют богатую экосистему Java-библиотек.

История

JVM спроектирована Sun Microsystems, анонсирована в 1994 году вместе с Java. Java 1.0 выпущен в 1996 году. HotSpot JVM (с JIT) выпущен Sun в 1999 году и стал основой OpenJDK. Oracle приобрела Sun в 2010 году. OpenJDK — открытая эталонная реализация; с Java 11 (2018) LTS-версии выходят каждые 3 года.

Связь с хостингом

На VDS с Java-приложениями (Tomcat, Spring Boot) важен выбор JVM: OpenJDK 21 LTS — актуальная версия (2023). Настройка heap (-Xmx) критична: при нехватке памяти JVM бросает OutOfMemoryError. GC-паузы влияют на latency: для web-серверов ZGC или Shenandoah предпочтительнее G1GC. В Docker важен флаг -XX:+UseContainerSupport (Java 10+) для корректного определения доступной RAM.

JVM в хостинге

JVM (Java Virtual Machine) -- исполняемая среда для байткода Java, Kotlin, Scala, Groovy. На сервере требует: 512 МБ RAM минимум (JVM startup), 1--8 ГБ для реальных приложений. Параметры запуска: -Xms256m -Xmx2g (начальный и максимальный heap), -XX:+UseG1GC (G1 Garbage Collector для серверных приложений). Мониторинг JVM через JMX, jvisualvm, Java Flight Recorder. Типичные проблемы: OutOfMemoryError (мало heap), long GC pauses (неоптимальный GC). JVM поддерживает несколько языков -- Spring Boot работает на JVM так же, как и Kotlin или Scala-приложения.

JVM версии и хостинг

Java LTS-версии: Java 11 (2018, поддержка до 2026), Java 17 (2021, поддержка до 2029), Java 21 (2023, поддержка до 2031). Java 21 добавил Virtual Threads (Project Loom) -- легковесные потоки для высококонкурентных приложений без накладных расходов OS-threads. На VPS для Java рекомендуется минимум 2 ГБ RAM. Tomcat и Spring Boot работают на JVM. Хостинг Java требует поддержки нужной версии JDK на сервере. GraalVM Native Image позволяет компилировать Java в нативный бинарник без JVM -- стартап за 50 мс вместо 2--5 секунд.

История JVM

JVM разработана Sun Microsystems в 1994--1995 годах. Java 1.0 вышла в 1996 году с принципом "Write Once, Run Anywhere". HotSpot JVM (приобретена Sun в 1999) ввела JIT-компиляцию. Java 5 (2004) -- Generics и автоупаковка. Java 8 (2014) -- Lambda expressions, Stream API. Oracle приобрела Sun в 2010 году. В 2017 году OpenJDK стал основной реализацией JVM. GraalVM разработан Oracle Labs в 2019 году.

Другие термины