WISSENSARTIKEL / COMPUTER & HARDWARE

Java Virtual Machine

Die Grundlage für plattformunabhängige Java-Anwendungen

◎ KURZDEFINITION

Java Virtual Machine Die Java Virtual Machine (JVM) ist eine virtuelle Laufzeitumgebung, die Java-Bytecode interpretiert oder just-in-time kompiliert, um Java-Anwendungen plattformunabhängig auszuführen.

Eigenständig verständliche Definition
✦

Das Wichtigste auf einen Blick

  • Die JVM ermöglicht plattformunabhängige Ausführung von Java-Programmen.
  • Sie interpretiert oder kompiliert Java-Bytecode zur Laufzeit.
  • Speicherverwaltung und Garbage Collection sind Kernfunktionen der JVM.
  • Die JVM unterstützt Multithreading und Sicherheitsmechanismen.
  • Es existieren verschiedene Implementierungen der JVM für unterschiedliche Plattformen.
  • Die JVM ist nicht nur für Java, sondern auch für andere Sprachen nutzbar, die Bytecode erzeugen.
01

Überblick: Java Virtual Machine

Die Java Virtual Machine (JVM) ist ein zentrales Element der Java-Technologie. Sie ermöglicht die Ausführung von Java-Programmen auf verschiedenen Hardware- und Betriebssystemplattformen, ohne dass der Quellcode angepasst werden muss. Die JVM sorgt für die Übersetzung des plattformunabhängigen Bytecodes in maschinennahe Befehle und übernimmt wichtige Aufgaben wie Speicherverwaltung, Sicherheitskontrollen und Thread-Steuerung.

02

Was ist die Java Virtual Machine?

Die Java Virtual Machine (JVM) ist eine Softwareumgebung, die Java-Bytecode ausführt. Sie stellt eine Abstraktionsschicht zwischen dem Java-Programm und der zugrunde liegenden Hardware dar und ermöglicht so die Plattformunabhängigkeit von Java-Anwendungen.

03

Funktionsweise der JVM

Die JVM lädt Java-Bytecode, interpretiert ihn oder kompiliert ihn just-in-time (JIT) in nativen Maschinencode. Dabei verwaltet sie den Speicher, führt Garbage Collection durch und steuert die Ausführung von Threads.

04

Aufbau und Komponenten der JVM

Die JVM besteht aus mehreren Komponenten: Class Loader, Bytecode-Interpreter, Just-in-time-Compiler, Speicherverwaltung (Heap, Stack), Garbage Collector und Sicherheitsmanager.

05

Wichtige JVM-Komponenten und ihre Aufgaben

KomponenteAufgabeBeschreibung
Class LoaderLädt KlassenLädt Java-Klassen zur Laufzeit in die JVM.
Bytecode-InterpreterFührt Bytecode ausInterpretation des Bytecodes Befehl für Befehl.
Just-in-time-Compiler (JIT)Kompiliert BytecodeÜbersetzt Bytecode in nativen Maschinencode zur Laufzeit.
Garbage CollectorSpeicherbereinigungAutomatisches Freigeben nicht mehr genutzter Objekte.
SicherheitsmanagerSicherheitskontrolleÜberwacht und kontrolliert Zugriffe auf Ressourcen.
06

Plattformunabhängigkeit durch die JVM

Java-Programme werden in Bytecode kompiliert, der von der JVM interpretiert wird. Da es für jede Plattform eine eigene JVM-Implementierung gibt, kann derselbe Bytecode auf unterschiedlichen Systemen ausgeführt werden, ohne neu kompiliert zu werden.

07

JVM und andere Programmiersprachen

Neben Java nutzen auch andere Sprachen wie Kotlin, Scala oder Groovy die JVM als Laufzeitumgebung, indem sie ihren Quellcode in Java-Bytecode übersetzen.

08

Leistungsoptimierungen in der JVM

Die JVM verwendet Techniken wie Just-in-time-Kompilierung und adaptive Optimierung, um die Ausführungsgeschwindigkeit von Programmen zu erhöhen.

09

Sicherheitsaspekte der JVM

Die JVM bietet Sicherheitsmechanismen wie Sandboxing, Zugriffskontrollen und Bytecode-Verifikation, um die Ausführung von schädlichem Code zu verhindern.

10

Bekannte JVM-Implementierungen

Es gibt verschiedene JVM-Implementierungen, darunter die Oracle HotSpot JVM, OpenJ9 von IBM und GraalVM, die unterschiedliche Schwerpunkte bei Performance und Erweiterbarkeit setzen.

11

Wichtig zu wissen

✦

Die JVM ist nicht nur eine Laufzeitumgebung, sondern auch ein entscheidender Faktor für die Plattformunabhängigkeit und Sicherheit von Java-Anwendungen.

◇

Zusatzinformationen

◇

Begriff: Java Virtual Machine

Abkürzung: JVM

Funktion: Ausführung von Java-Bytecode

Hauptaufgaben: Bytecode-Interpretation, Just-in-time-Kompilierung, Speicherverwaltung, Sicherheitskontrolle

Plattformunabhängigkeit: Ermöglicht plattformübergreifende Ausführung

Programmiersprachen: Java, Kotlin, Scala, Groovy u.a.

Erfinder: Sun Microsystems

Erstveröffentlichung: 1995

Aa

Synonyme und alternative Bezeichnungen

?

Häufige Fragen zu Java Virtual Machine

Was ist der Unterschied zwischen JVM und JRE?

Die JVM ist die virtuelle Maschine, die Java-Bytecode ausführt. Die JRE (Java Runtime Environment) umfasst die JVM sowie die Standardbibliotheken und andere Komponenten, die zur Ausführung von Java-Anwendungen benötigt werden.

Kann die JVM auch Programme aus anderen Sprachen ausführen?

Ja, viele Programmiersprachen wie Kotlin, Scala oder Groovy übersetzen ihren Code in Java-Bytecode, der von der JVM ausgeführt wird.

Wie sorgt die JVM für Sicherheit bei der Programmausführung?

Die JVM überprüft den Bytecode vor der Ausführung, verwendet Sandboxing-Techniken und kontrolliert Zugriffe auf Systemressourcen, um schädliche Aktionen zu verhindern.

Was ist Just-in-time-Kompilierung in der JVM?

Just-in-time-Kompilierung (JIT) ist ein Verfahren, bei dem Bytecode zur Laufzeit in nativen Maschinencode übersetzt wird, um die Ausführungsgeschwindigkeit zu erhöhen.

Welche Rolle spielt die Garbage Collection in der JVM?

Die Garbage Collection übernimmt die automatische Speicherbereinigung, indem sie nicht mehr benötigte Objekte erkennt und den belegten Speicher freigibt.

Gibt es unterschiedliche JVM-Versionen für verschiedene Betriebssysteme?

Ja, es existieren plattformspezifische JVM-Implementierungen, die auf verschiedenen Betriebssystemen und Hardwarearchitekturen laufen.

Wie beeinflusst die JVM die Plattformunabhängigkeit von Java?

Die JVM ermöglicht es, dass derselbe Java-Bytecode auf unterschiedlichen Plattformen ausgeführt werden kann, da jede Plattform ihre eigene JVM-Implementierung bereitstellt.

▤

Quellen & weiterführende Informationen

Quellenvorschläge und Nachweise zum Artikel. Bitte externe Inhalte eigenständig prüfen.

3 Quellen
  1. 01
    The Java Virtual Machine Specification ↗
    Oracle· James Gosling et al.· Offizielle SpezifikationKI-Vorschlag · ungeprüft

    Offizielle Spezifikation der JVM von Oracle.

    https://docs.oracle.com/javase/specs/jvms/se8/html/
  2. 02
    Java Platform, Standard Edition Documentation ↗
    Oracle· Oracle Corporation· DokumentationKI-Vorschlag · ungeprüft

    Offizielle Dokumentation zur Java-Plattform.

    https://docs.oracle.com/javase/8/docs/
  3. 03
    Understanding the Java Virtual Machine ↗
    Oracle· Oracle Technical Staff· Technischer ArtikelKI-Vorschlag · ungeprüft

    Erklärung der JVM und ihrer Funktionsweise.

    https://www.oracle.com/technical-resources/articles/javase/jvm.html
War dieser Artikel hilfreich?Dein Feedback hilft, die Wissensplattform zu verbessern.