Bei Kompilierung eines Quelltextes mancher Programmiersprachen oder Umgebungen – wie beispielsweise Java – wird nicht direkt Maschinencode, sondern ein Zwischencode, der Bytecode, erstellt. Ist der programmierte Quelltext frei von Syntaxfehlern, kann er vom Compiler in den Bytecode übersetzt werden. Bytecodes werden in Dateien mit der Endung .class gespeichert.
Die Java Virtual Machine (JVM) führt den Bytecode zur Laufzeit aus und übersetzt diesen für den jeweiligen Prozessor in Maschinensprache. Dabei muss die Virtual Machine für die jeweilige Rechnerplattform installiert sein.
Java-Quelltext in der Datei Bundesliga.java
public class Bundesliga
{
private String[] bundesligaTabelle;
public Bundesliga()
{
bundesligaTabelle = new String[18];
bundesligaTabelle[0]="FC Bayern München";
bundesligaTabelle[1]="Borussia Dortmund";
bundesligaTabelle[2]="Bayer 04 Leverkusen";
bundesligaTabelle[3]="FC Schalke 04";
bundesligaTabelle[4]="Eintracht Frankfurt";
bundesligaTabelle[5]="Sport-Club Freiburg";
bundesligaTabelle[6]="Borussia Mönchengladbach";
bundesligaTabelle[7]="Hamburger SV";
bundesligaTabelle[8]="Hannover 96";
bundesligaTabelle[9]="1. FSV Mainz 05";
bundesligaTabelle[10]="VfL Wolfsburg";
bundesligaTabelle[11]="VfB Stuttgart";
bundesligaTabelle[12]="1. FC Nürnberg";
bundesligaTabelle[13]="SV Werder Bremen";
bundesligaTabelle[14]="Fortuna Düsseldorf";
bundesligaTabelle[15]="FC Augsburg";
bundesligaTabelle[16]="1899 Hoffenheim";
bundesligaTabelle[17]="SpVgg Greuther Fürth";
}
public void gebeAlleVereineAufDerKonsoleAus(){
for(String verein:bundesligaTabelle){
System.out.println(verein);
}
}
public String[]sucheStadtMitBundesligaVerein(String stadt){
String[] trefferliste=new String[18];
int trefferZaehler=0;
for(int index = 0; index<18;index++){
String aktuellerVerein=bundesligaTabelle[index];
if(aktuellerVerein.contains(stadt)){
trefferliste[trefferZaehler]=aktuellerVerein;
trefferZaehler++;
}
}
return trefferliste;
}
}
Compile
Java Byte-Code in der Datei Bundesliga.class
Êþº¾ 3 Z
. 6. 7 . 8. 9. :. ;. <. =. >. ?. @. A. B. C. D. E. F. G. H. I. J K L
M N
. O. P. Q. .bundesligaTabelle. .[Ljava/lang/String;. .<init>. .()V. .Code. .LineNumberTable. .LocalVariableTable. .this. .LBundesliga;. .gebeAlleVereineAufDerKonsoleAus. .verein. .Ljava/lang/String;. .arr$. .len$. .I. .i$.
StackMapTable. .. .sucheStadtMitBundesligaVerein. '(Ljava/lang/String;)[Ljava/lang/String;. .aktuellerVerein. .index. .stadt. .trefferliste. .trefferZaehler.
SourceFile. .Bundesliga.java. . .. .java/lang/String. . .. .FC Bayern München. .Borussia Dortmund. .Bayer 04 Leverkusen.
FC Schalke 04. .Eintracht Frankfurt. .Sport-Club Freiburg. .Borussia Mönchengladbach. .Hamburger SV. .Hannover 96. .1. FSV Mainz 05.
VfL Wolfsburg.
VfB Stuttgart. .1. FC Nürnberg. .SV Werder Bremen. .Fortuna Düsseldorf. .FC Augsburg. .1899 Hoffenheim. .SpVgg Greuther Fürth. R. S T. U. V W. X Y.
Bundesliga. .java/lang/Object. .java/lang/System. .out. .Ljava/io/PrintStream;. .java/io/PrintStream. .println. .(Ljava/lang/String;)V. .contains. .(Ljava/lang/CharSequence;)Z ! . . . . . . . . . . . . .$ . . ª*· .*..½ .µ .*´ ....S*´ ....S*´ ....S*´ ....S*´ ....S*´ ... S*´ ....
S*´ .....S*´ .....S*´ .. .
S*´ ..
..S*´ .....S*´ .....S*´ ..
..S*´ .....S*´ .....S*´ .....S*´ .....S± . V .
. .
. . . . . % . - . 5 . = . F . O . X . a . j . s . | . … . Ž . — . © " ! . . ª " # . $ . . . ” . . #*´ .L+¾=.>..¢ .+.2:.² ...¶ .„..§ÿë± . . . % . & . % " ( ! 4 . . . % & . . . ' . . . . ( ) .
. * ) . # " # +
.þ
. ,..ø . . - . . . Ä . . 4..½ .M.>.6.....¢ #*´ ...2:...+¶ .™ .,...S„..„..§ÿÜ,° . & + . , . - . . . / $ 0 ) 1 , - 2 4 ! > . . . / & . . ' 0 ) . 4 " # 4 1 & . . . 2 . . . , 3 ) . + . .þ .. ,.. ú . . 4 . 5