Wirtualna maszyna Javy (JVM)
Wirtualna maszyna Javy (JVM) to środowisko, które wykonuje skompilowany kod bajtowy Javy na różnych platformach. Dzięki niej, programy mogą działać niezależnie od systemu operacyjnego i sprzętu, co czyni Javę jedną z najpopularniejszych technologii programistycznych. Szacuje się, że na całym świecie jest około 10 miliardów urządzeń z JVM, a liczba programistów pracujących z Javą wynosi od 6,5 do 9 milionów.
Podstawowe składniki JVM
JVM składa się z kilku kluczowych elementów:
- Interpreter: Wykonuje instrukcje kodu bajtowego krok po kroku.
- Kompilator JIT: Kompiluje często używane fragmenty kodu do kodu maszynowego, co zwiększa wydajność.
- Zarządca pamięci: Odpowiada za zarządzanie pamięcią i automatyczne zwalnianie nieużywanej pamięci.
- Weryfikator kodu bajtowego: Sprawdza poprawność kodu przed jego uruchomieniem, zapewniając bezpieczeństwo systemu.
- Java API: Zestaw bibliotek programistycznych, które wspierają aplikacje w zakresie obsługi plików, GUI itp.
Dystrybucje JVM
Na rynku dostępne są dwie główne dystrybucje JVM:
- Java Runtime Environment (JRE): Zawiera narzędzia niezbędne do uruchomienia aplikacji.
- Java Development Kit (JDK): Oprócz JRE, zawiera narzędzia dla programistów do tworzenia aplikacji.
Języki działające na JVM
JVM została pierwotnie zaprojektowana do uruchamiania aplikacji w języku Java, ale obecnie obsługuje wiele innych języków, takich jak:
- Scala
- Kotlin
- Clojure
- Groovy
- JRuby
- Jython
Wprowadzenie instrukcji invokedynamic
w specyfikacji Java 7 umożliwiło także wsparcie dla języków dynamicznie typowanych.
Implementacje JVM
Referencyjną implementacją JVM od Javy 7 jest OpenJDK, która powstała na bazie otwartego kodu źródłowego. Zamknięta wersja, HotSpot, jest nadal rozwijana przez firmę Oracle. Inne niezależne implementacje to Kaffe oraz IBM J9.