Java kombiniert diese Konzepte auf eine Weise, die der Erklärung bedarf. Damit das Beispielprogramm läuft, muss es zuerst in Bytecode übersetzt werden.
Java Bytecode besteht aus Maschineninstruktionen für einen Java Prozessor. Eine Bytecode Datei ist ein Maschinensprachprogramm für einen Java Prozessor.
Konzeptuell ist ein Java Prozessor ein Prozessorchip aus Silizium, der die vom Java Bytecode verlangten Maschinenbefehle direkt ausführt.
Die oben stehende Abbildung zeigt wie der Java Compiler ein Java Beispielprogramms Hello.java
in Bytecode übersetzt. Die Datei mit dem Bytecode wird
Hello.class
genannt.
In dieser Abbildung wird das Quellprogramm Hello.java
von einem Programm mit dem Namen javac
kompiliert.
Das Programm javac
ist ein Compiler (ein Übersetzer), der
das Quellprogramm in eine Bytecode Datei mit dem Namen Hello.class
übersetzt.
Wichtiger Gedanke: Die Bytecode Datei wird genau den gleichen Bytecode enthalten, ganz egal welches Computersystem verwendet wird.
Die Architektur eines Prozessors, der Java Bytecode ausführt, ist sehr gut dokumentiert und für jeden zugänglich. Der Java Compiler auf einem Macintosh wird exakt den gleichen Bytecode erzeugen, wie der Java Compiler auf einem Intel System.
Könnte ein Prozessorchip gebaut werden, der Java Bytecode direkt ausführen kann, genauso wie ein Intel Prozessorchip seine Maschinensprache direkt ausführt?