JVM (Java virtual machine)

Java Virtual Machine (JVM) ist eine Software, die zur Ausführung von Java-Programmen benötigt wird und Bestandteil der Java Runtime Environment (JRE) ist. Im Gegensatz zu Java-Programmen selbst ist die JVM nicht plattformunabhängig, sondern ein natives Programm für die jeweilige Zielplattform. Auf jedem System, für das eine den Spezifikationen entsprechende JVM verfügbar ist, können Java-Programme ausgeführt werden.


Nachdem der Quelltext in Bytecode umgewandelt worden ist, kann dieser der JVM übergeben werden. Diese sucht den Einstiegspunkt des Programms (im Fall von Java die main()-Methode) und beginnt dort mit der Ausführung. Dazu wird der auszuführende Programmblock zunächst für das Zielsystem kompiliert und dann aufgerufen. Die Kompilierung erfolgt als Just In-time Compilation (JIT-Kompilation).

Java 
   Virtual Machine

Java Virtual Machine

Als gravierenster Nachteil dieser Vorgehensweise wird im Allgemeinen der erhöhte Ressourcenbedarf ins Feld geführt, der auf Grund der auszuführenden JVM und ständigen Kompiliervorgänge nicht zu vermeiden ist. Optimierungen in diesem Bereich und das stetige Leistungswachstum der Hardware lassen es jedoch in den meisten Anwendungsgebieten immer weiter in den Hintergrund treten.

Die zweite Hauptaufgabe der JVM, vereinfacht die Programmierung im Vergleich zu älteren Sprachen wie insbesondere C++ erheblich: die Verwaltung der verwendeten Speicherbereiche. Java-Programmierer werden vollständig von der Aufgabe befreit, Speicherbereiche explizit zu reservieren und wieder freizugeben. Neben kürzeren Entwicklungszeiten erhält man so stabilere Software, die weniger anfällig für Speicherlecks und Sicherheitslücken wie Buffer Overflows ist. Die wichtigste Funktion in diesem Zusammenhang ist die Garbage Collection. Die automatische Speicherverwaltung arbeitet zwar zuverlässiger und sicherer, aber nicht so effizient wie eine manuell (und fehlerfrei) implementierte. Deshalb gibt es durchaus Anwendungsfälle, in denen Java als Programmiersprache weniger gut geeignet ist als beispielsweise C++.

Informationen zum Artikel
Deutsch: Java virtuelle Maschine
Englisch: Java virtual machine - JVM
Veröffentlicht: 26.03.2008
Wörter: 290
Tags: #Java
Links: buffer overflow, Bytecode, C++, GC (garbage collection), Hardware