Suchen und Finden
Service
Infos und Kontakt
Die virtuelle Maschine (S. 22-23)
Auf den ersten Blick ist Java eine Programmiersprache wie alle anderen Programmiersprachen auch. Im Hintergrund ist allerdings doch einiges anders organisiert, als dies zum Beispiel in C++ der Fall ist. So erzeugen normalerweise Übersetzungsprogramme (Compiler) durch den Kompiliervorgang aus dem vom Programmierer erstellten Quellcode Maschinencode. Der Maschinencode ist dann ausgelegt für eine spezielle Plattform, läuft also auf einem bestimmten Betriebssystem.
Hier ist bei Java eine völlig andere Lösung gefunden worden. Der Java-Compiler erzeugt einen Zwischencode, den Bytecode, der in einer speziellen Ausführungsumgebung, der so genannten virtuellen Maschine, ausgeführt wird. Diese virtuelle Maschine stellt quasi einen Prozessor dar, der von dem jeweiligen Betriebssystem abstrahiert und eine einheitliche Umgebung für die Ausführung eines Java-Programms garantiert.
Einen Nachteil hat die Ausführung von Bytecode zur Laufzeit jedoch: Der Code muss wie bei jeder interpretierten Sprache stets neu übersetzt werden, so dass zur Ausführungszeit des Programms noch die Übersetzungszeit hinzukommt. Seit der Einführung der so genannten Just-In-Time-Compiler (JIT) wird dieser Übersetzungsvorgang nur noch einmal beim ersten Aufruf eines Programms bzw. eines Programmbestandteils ausgeführt. Der dabei erzeugte Maschinencode wird zwischengespeichert, so dass alle nachfolgenden Aufrufe wesentlich schneller ablaufen. Dadurch wurde die Ausführungszeit von Java-Programmen um ein Vielfaches beschleunigt, so dass die meisten Performance-Probleme, die früher durchaus zu beobachten waren, der Vergangenheit angehören.
Mögliche Einsatzbereiche
Jeder Programmierer entwickelt auf der Grundlage seiner persönlichen und privaten Interessen, die meist schon vor der ersten Programmiererfahrung bestanden, seine eigene Rangfolge an wichtigen und bedeutsamen Einsatzgebieten der einen oder anderen Programmiersprache. Daher ist der folgende Abschnitt natürlich nicht zu verallgemeinern, wenn wir auch meinen, dass er die großen und entscheidenden Anwendungsmöglichkeiten beschreibt und die Kernpunkte herauskristallisiert, die Java von anderen Werkzeugen unterscheiden oder die es in guter – wenn nicht besserer – Weise bereitstellt.
Datenbank-Anwendungen
Netzwerkprogrammierung
Multimedia
Grafikprogrammierung
XML
Dynamische Webseiten
Unternehmensweite Portale
Java wurde vollständig neu entworfen und man versuchte sich so weit wie möglich an die Syntax von C zu halten. Laut SUN sollte Java eine einfache, objektorientierte, verteilte, robuste, sichere, architekturneutrale, portable, performante, nebenläufige und dynamische Programmiersprache werden. Der Erfolg von Java hängt damit zusammen, dass die Entwickler diesem Anspruch durchaus genügt haben. Java hat nicht alle Features von C++ realisiert, wodurch aber kein größerer Nachteil entstanden ist. Die Sprache wurde dadurch übersichtlich, ohne aber an Möglichkeiten einzubüßen. Java ist durchaus für Großprojekte und anspruchsvolle Aufgaben geeignet, und das (fast) ohne Einschränkungen.
Anfänglich beruhte der enorme Erfolg von Java sicherlich auf der Affinität zum Internet. Mit Hilfe von Java können Programme in Form von Applets (und seit Java 1.3 mit Hilfe von Java Web Start als eigenständige Programme) über das Web verbreitet und innerhalb eines Browsers ausgeführt werden. Im Übrigen wurde eigens für diesen Zweck die Sprache HTML um das Applet-Tag erweitert. Somit kann man auch kompilierten Code in normalen Webseiten einbinden. Technisch gesehen sind in jedem Java-fähigen Browser ein Java-Interpreter (die virtuelle Java-Maschine) und die Laufzeitbibliothek enthalten. Somit kann ein Applet direkt im Browser interpretiert und ausgeführt werden. Später haben Applets ihre anfängliche Bedeutung verloren, unter anderem auch deshalb, weil die Unterstützung nicht in allen Browsern einheitlich war.
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion




















