Java Reference
In-Depth Information
ausführbaren Code übersetzt, der auf dem System lauffähig ist, sondern in einen Zwi-
schencode. Diese Zwischenstufe wird als
Bytecode
bezeichnet. Der Java-Compiler
erzeugt beim Übersetzen Bytecodedateien mit der Dateiendung
.class
. Dieser Umstand
macht für die Ausführung des Programms einen Interpreter erforderlich. Dieser inter-
pretiert allerdings keinen Quellcode, sondern Bytecode. Der Java-Interpreter, der auf
dem betreffenden System installiert sein muss, wird entweder als
Virtuelle
Maschine
(
VM
) oder als
Java
Runtime
Environment
(
JRE
) bezeichnet.
1
import
javax.swing.JOptionPane;
public class
Collatzfolge {
public
static
void
main(String[] args)
{
int
n;
String eingabe;
...
Quellcode
JAV
A
-Compiler
Entwicklungs-
system
0001 0101 0010 1101 0110 0011 1110 0111
1010 1100 1111 0001 0111 1011 0011 1001
0100 …
Bytecode
0001 0101 0010 1101 0110 0011 1110 0111
1010 1100 1111 0001 0111 1011 0011 1001
0100 …
Bytecode
Interpreter
(Virtu
e
lle Maschine)
1011 1101 0110 1001
0010 1010 1010 …
Maschinencode
Zielsystem
Abbildung 1.13
Hochsprachenprogrammierung mit Java
Java kombiniert die Vorteile eines Compiler- und eines Interpreter-Systems. Es soll
nicht verschwiegen werden, dass mit der Verwendung eines Interpreters auf dem Ziel-
system ein Geschwindigkeitsnachteil bei der Ausführung des Programms einhergeht.
Die Übersetzung des Bytecodes ist allerdings weit weniger zeitaufwändig als eine Über-
setzung aus dem Quellcode. Zusätzlich wurde eine Vielzahl von Optimierungen vorge-
nommen, sodass der Geschwindigkeitsnachteil vor allem unter Berücksichtigung der