Eigenheiten der Sprache Java
Hinter Java verbirgt sich nicht nur eine moderne Programmiersprache, sondern eine ganze Reihe neuartiger Technologien:
Java schänkt die Freiheiten des Programmierers relativ stark ein; hält ihn dadurch aber gleichzeitig davon abhält, eine Vielzahl von ansonsten häufigen Fehlern zu begehen.
Java ist eine konsequent objektorientierte Sprache. Jeder Schnipsel Programmcode muss daher logisch in einen Objekt- oder Klassenkontext geklammert werden.
Vererbung
Java verwendet das Konzept der Objektklassen. Die Klassen sind durch (Einfach-)Vererbung in einer Hierarchie organisiert. Implizite Basisklasse ist dabei stets java.lang.Object.
Neben den Klassen gibt es in Java das Konzept der
Interfaces. Klassen können beliebig viele
Interfaces implementieren.
Typisierung
Java verwendet das Konzept der Objektklassen und besteht auf strikter Typisierung. Das bedeutet insbesondere, dass es in Java keine Zeiger und somit keine Zeigerarithmetik gibt, sondern nur Referenzen.
Die Laufzeitumgebung
In Java geschriebene Programme werden i. A.
nicht mit Hilfe eines Kompilers in den Maschinencode eines bestimmten Prozessors übersetzt, sondern in einen abstrakten
Bytecode.
Dieser Code wird dann von einem Interpreter, der
Java Virtual Machine (JVM), auf der tatsächlichen Hardware ausgeführt (
"Compile once, run anywhere").
Just-in-Time Kompilierung (JIT)
Interpretierte Programme laufen wesentlicht langsamer ab als zuvor in Maschinencode übersetzte. Die Java-VM verwendet daher einen
Just-in-time Compiler der den
Bytecode beim Laden des Programms in Maschinencode übersetzt, der später wesentlich schneller ausgeführt werden kann.
Der Garbage Collector
Alle von einem Programm erzeugten Java-Objekte landen auf dem
Heap der JVM. Nicht mehr benötigte Objekte müssen dabei nicht von Hand vernichtet werden, sondern werden vom
Garbage Collector automatisch entsorgt.