WISSENSARTIKEL / PROGRAMMIERUNG & ENTWICKLUNG

Java Virtual Machine (JVM)

Die zentrale Laufzeitumgebung für Java-Anwendungen

◎ KURZDEFINITION

Java Virtual Machine Jvm Die JVM ist eine virtuelle Maschine, die Java-Bytecode interpretiert oder just-in-time kompiliert und so Java-Programme auf unterschiedlichen Plattformen ausführt.

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 in maschinenspezifische Befehle.
  • Speicherverwaltung und Garbage Collection sind Kernfunktionen der JVM.
  • Die JVM unterstützt verschiedene Programmiersprachen, die Bytecode erzeugen.
  • Sicherheitsmechanismen der JVM schützen vor schädlichem Code.
  • JVM-Implementierungen gibt es für zahlreiche Betriebssysteme und Hardwareplattformen.
01

Überblick: Java Virtual Machine Jvm

Die Java Virtual Machine (JVM) ist ein essenzieller Bestandteil der Java-Technologie. Sie ermöglicht es, Java-Programme einmal zu schreiben und auf vielen unterschiedlichen Systemen auszuführen, ohne den Quellcode anpassen zu müssen. Die JVM übernimmt dabei die Übersetzung des plattformunabhängigen Bytecodes in maschinenspezifische Befehle und verwaltet wichtige Laufzeitfunktionen wie Speicherverwaltung und Sicherheitsprüfungen.

02

Was ist die Java Virtual Machine?

Die Java Virtual Machine (JVM) ist eine abstrakte Softwareumgebung, die Java-Programme ausführt, indem sie den plattformunabhängigen Java-Bytecode in maschinenspezifische Befehle übersetzt. Sie stellt eine Laufzeitumgebung bereit, die unabhängig vom zugrundeliegenden Betriebssystem oder der Hardware funktioniert.

03

Funktionsweise der JVM

Die JVM lädt Java-Klassen, überprüft deren Bytecode auf Sicherheit, interpretiert oder kompiliert diesen mittels Just-In-Time (JIT) Compiler und verwaltet den Speicher. Dabei sorgt sie für die automatische Speicherbereinigung (Garbage Collection) und verwaltet Threads für parallele Ausführung.

04

Hauptkomponenten der JVM

Die JVM besteht aus mehreren Komponenten: Dem Class Loader, der Klassen lädt; dem Bytecode Interpreter, der den Bytecode ausführt; dem Just-In-Time Compiler, der Bytecode in nativen Maschinencode übersetzt; und dem Garbage Collector, der nicht mehr benötigte Objekte entfernt.

05

Vergleich wichtiger JVM-Komponenten

KomponenteAufgabeBeschreibung
Class LoaderLädt KlassenLädt Java-Klassen in den Speicher und verwaltet Namensräume.
Bytecode InterpreterFührt Bytecode ausInterpretiert Java-Bytecode Schritt für Schritt.
Just-In-Time CompilerKompiliert BytecodeÜbersetzt Bytecode zur Laufzeit in nativen Maschinencode.
Garbage CollectorSpeicherverwaltungAutomatische Bereinigung nicht mehr genutzter Objekte.
06

Plattformunabhängigkeit durch die JVM

Java-Programme werden in Bytecode kompiliert, der von der JVM interpretiert wird. Da es für viele Betriebssysteme und Hardwarearchitekturen JVM-Implementierungen gibt, kann derselbe Java-Bytecode überall ausgeführt werden, was die sogenannte "Write Once, Run Anywhere"-Philosophie ermöglicht.

07

Sicherheitsaspekte der JVM

Die JVM führt Sicherheitsprüfungen durch, um schädlichen oder fehlerhaften Code zu erkennen. Dazu gehören Bytecode-Validierung, Zugriffskontrollen und Sandboxing-Mechanismen, die verhindern, dass Java-Programme unautorisierte Operationen ausführen.

08

Unterstützte Programmiersprachen

Neben Java können auch andere Sprachen wie Kotlin, Scala, Groovy oder Clojure Bytecode erzeugen, der auf der JVM ausgeführt wird. Dies macht die JVM zu einer vielseitigen Plattform für verschiedene Programmiersprachen.

09

JVM-Implementierungen

Es existieren verschiedene JVM-Implementierungen, darunter die offizielle Oracle JVM, OpenJDK, IBM J9 und andere. Diese unterscheiden sich in Performance, Lizenzbedingungen und unterstützten Plattformen.

10

Wichtig

✦

Die JVM ist nicht nur eine Laufzeitumgebung, sondern auch ein wesentlicher Faktor für die Sicherheit, Portabilität und Performance von Java-Anwendungen.

◇

Zusatzinformationen

◇

Begriff: Java Virtual Machine (JVM)

Typ: Virtuelle Maschine

Funktion: Ausführung von Java-Bytecode

Erfinder: Sun Microsystems (heute Oracle)

Erstveröffentlichung: 1995

Plattformunabhängigkeit: Ja

Hauptbestandteile: Class Loader, Bytecode Interpreter, Just-In-Time Compiler, Garbage Collector

Aa

Synonyme und alternative Bezeichnungen

?

Häufige Fragen zu Java Virtual Machine Jvm

Was ist der Unterschied zwischen JVM und JRE?

Die JVM ist die virtuelle Maschine, die Java-Bytecode ausführt, während die JRE (Java Runtime Environment) die JVM zusammen mit den Standardbibliotheken und anderen Komponenten enthält, die zur Ausführung von Java-Anwendungen benötigt werden.

Kann die JVM auch Programme ausführen, die nicht in Java geschrieben wurden?

Ja, solange die Programme in eine Sprache übersetzt werden, die Java-Bytecode erzeugt, wie Kotlin oder Scala, kann die JVM diese ausführen.

Wie sorgt die JVM für Speicherverwaltung?

Die JVM verwaltet den Speicher automatisch durch Garbage Collection, die nicht mehr benötigte Objekte erkennt und entfernt, um Speicher freizugeben.

Was ist Just-In-Time (JIT) Compilation in der JVM?

JIT Compilation ist ein Verfahren, bei dem der Bytecode zur Laufzeit in nativen Maschinencode übersetzt wird, um die Ausführungsgeschwindigkeit zu erhöhen.

Ist die JVM plattformunabhängig?

Die JVM selbst ist an die jeweilige Plattform angepasst, aber der Java-Bytecode ist plattformunabhängig, sodass Programme auf jeder JVM laufen können.

Welche Rolle spielt die JVM bei der Sicherheit von Java-Anwendungen?

Die JVM führt Sicherheitsprüfungen wie Bytecode-Validierung und Sandboxing durch, um zu verhindern, dass schädlicher Code Schaden anrichtet.

Gibt es verschiedene JVM-Versionen?

Ja, es gibt verschiedene Implementierungen und Versionen der JVM, die sich in Funktionalität und Performance unterscheiden.

▤

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

    Grundlegende technische Spezifikation der JVM

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

    Dokumentation zu JVM und Java SE

    https://docs.oracle.com/javase/8/docs/
  3. 03
    OpenJDK Project ↗
    OpenJDK Community· OpenJDK Contributors· Open Source ProjektKI-Vorschlag · ungeprüft

    Quelloffene Implementierung der JVM

    https://openjdk.org/

Artikel teilen oder einbetten

Teile diesen Wissensartikel oder binde eine kompakte Vorschau auf deiner eigenen Website ein.

f Facebookin LinkedIn𝕏 X◉ WhatsApp
Wie bewertest du diesen Artikel?Deine Sterne helfen anderen Lesern und verbessern unsere Inhalte.
– / 5(0 Bewertungen)
Bewerte mit 1 bis 5 Sternen
DEIN FEEDBACKWar dieser Artikel hilfreich?Deine Rückmeldung hilft uns, die Inhalte noch besser zu machen.
STIMMEN DER LESERFeedback zu diesem Artikel
0 Stimmen
👍 Ja, sehr
00 %
◐ Teilweise
00 %
👎 Nicht wirklich
00 %

Die Balken aktualisieren sich automatisch anhand der abgegebenen Rückmeldungen.

ANSWER ENGINE · COMMUNITY

Diskussion zum Artikel

Teile deine Gedanken, stelle Rückfragen oder antworte anderen Lesern – respektvoll und direkt am Thema.

0 Kommentare
Deine E-Mail-Adresse wird nicht öffentlich angezeigt.
0 / 2.000
Kommentare & AntwortenNeueste Diskussion
Kommentare werden geladen …
ANSWER ENGINE · ARTIKEL

Diese Seite in Zahlen

Artikelstatistik
↗–Aufrufe dieses Artikels
◷–Unique Nutzer letzte 24 Stunden
◉–Unique Nutzer heute
▦–Unique Nutzer diesen Monat

Alle Werte in diesem Abschnitt beziehen sich ausschließlich auf diesen Artikel.

LETZTE 30 TAGE

Entwicklung dieses Artikels

Tagesverlauf

Hinweis: Seitenaufrufe werden erst ab Aktivierung der täglichen Statistik historisch pro Tag erfasst. Unique Nutzer sind Tageswerte; dieselbe Person kann an mehreren Tagen vorkommen und darf deshalb nicht zu einer Monatszahl addiert werden.

SeitenaufrufeUnique Nutzer
Seitenaufrufe vs. vorherige 30 TageWird geladen …
Unique Nutzer vs. vorherige 30 TageWird geladen …
ANSWER ENGINE · GESAMTES NETZWERK

Wissensplattform in Zahlen

Netzwerkstatistik
↗–Seitenaufrufe gesamt
◷–Unique Nutzer letzte 24 Stunden
◉–Unique Nutzer heute
▦–Unique Nutzer diesen Monat

Diese Werte beziehen sich auf die gesamte Plattform und alle veröffentlichten Artikel.

LETZTE 30 TAGE

Entwicklung des gesamten Netzwerks

Tagesverlauf

Hinweis: Seitenaufrufe werden erst ab Aktivierung der täglichen Statistik historisch pro Tag erfasst. Unique Nutzer sind Tageswerte; dieselbe Person kann an mehreren Tagen vorkommen und darf deshalb nicht zu einer Monatszahl addiert werden.

SeitenaufrufeUnique Nutzer
Seitenaufrufe vs. vorherige 30 TageWird geladen …
Unique Nutzer vs. vorherige 30 TageWird geladen …