Einführung in die Java-Programmierung
Erfahren Sie, was Java ist, wie JVM und JDK zusammenhängen und welche Rolle Java in der modernen Softwareentwicklung spielt.
Java ist eine universelle, statisch typisierte, objektorientierte Programmiersprache, die auf Portabilität ausgelegt ist. Programme werden zu Bytecode kompiliert, der auf der Java Virtual Machine (JVM) läuft. Dadurch kann dieselbe .class-Datei unter Windows, macOS, Linux oder jedem anderen System ausgeführt werden, auf dem eine kompatible JVM installiert ist. Diese Portabilität — zusammengefasst im ursprünglichen Slogan „write once, run anywhere" — ist nach wie vor das prägende Merkmal der Sprache.
Dieses Kapitel stellt die Sprache, die Plattform und die Teile des Java-Ökosystems vor, denen Sie im weiteren Verlauf des Buches begegnen werden.
Was Java ist
Java wurde 1995 von Sun Microsystems veröffentlicht und wird heute von Oracle betreut. Die Syntax lehnt sich an C und C++ an, verzichtet jedoch auf manuelle Speicherverwaltung zugunsten eines automatischen Garbage Collectors und lässt Funktionen weg (wie Zeigerarithmetik und Mehrfachvererbung von Klassen), die in systemnahen Sprachen häufig Fehler verursachen. Das Ergebnis ist eine Sprache, die schnell zu erlernen, schwer zum Absturz zu bringen und gut geeignet für langlebige Anwendungen ist, die von großen Teams gepflegt werden.
Wichtige Eigenschaften, die Ihnen beim Durcharbeiten dieses Buches auffallen werden:
- Statisch typisiert. Jede Variable hat einen zur Kompilierzeit bekannten Typ, sodass der Compiler viele Fehler erkennt, bevor das Programm überhaupt ausgeführt wird.
- Objektorientiert. Code wird in Klassen organisiert, die Daten mit den darauf operierenden Methoden bündeln.
- Portabel. Quellcode wird zu plattformneutralem Bytecode kompiliert, der von jeder JVM ausgeführt werden kann.
- Speicherverwaltend. Der Garbage Collector gibt Objekte frei, auf die nicht mehr referenziert wird.
- Mehrfädig. Threads, Locks und moderne Nebenläufigkeits-Hilfsmittel sind Teil der Standardbibliothek.
- Abwärtskompatibel. Programme, die für ältere Java-Versionen geschrieben wurden, laufen fast immer unverändert auf neueren Versionen.
Wo Java eingesetzt wird
Da die JVM auf nahezu jedem Server und Desktop-System läuft, hat sich Java in fast jeden Bereich der Softwareentwicklung ausgebreitet:
- Serverseitige Anwendungen — die meisten großen E-Commerce-, Bank- und Unternehmens-Backends verwenden Java (häufig mit Spring, Jakarta EE oder Quarkus).
- Android-Apps — die Standardbibliothek von Android ist größtenteils eine Java API, auch wenn Apps in Kotlin geschrieben sind.
- Big-Data und Streaming — Hadoop, Spark, Kafka, Flink und Elasticsearch sind auf der JVM aufgebaut.
- Tooling und Build-Systeme — Maven, Gradle, Jenkins und viele CI-Tools laufen auf Java.
- Embedded und IoT — Chipkarten, Point-of-Sale-Terminals und industrielle Steuerungen.
JDK, JRE und JVM
Diese drei Abkürzungen verwirren Einsteiger mehr als alles andere in Java. Hier ist die Erklärung:
- JVM (Java Virtual Machine) — die Laufzeitumgebung, die Bytecode lädt und ausführt. Jedes Betriebssystem liefert seine eigene native JVM mit.
- JRE (Java Runtime Environment) — die JVM zusammen mit den Kernklassenbibliotheken, die zum Ausführen eines Java-Programms benötigt werden. Es ist das Minimum, das man zum Ausführen von Java-Code benötigt.
- JDK (Java Development Kit) — das JRE plus die Tools, die zum Kompilieren und Debuggen von Java-Code benötigt werden:
javac(Compiler),jshell(REPL),javadoc(Dokumentation) und weitere.
Um Java zu schreiben, installieren Sie das JDK; das JRE ist darin enthalten, sodass Sie beide nicht separat installieren müssen. Das JDK von Oracle ist nur eine Option — OpenJDK ist die kostenlose, quelloffene Referenzimplementierung, und Distributionen wie Eclipse Temurin, Amazon Corretto und Azul Zulu bündeln dasselbe OpenJDK mit eigenem Langzeitsupport. Alle funktionieren mit dem Code in diesem Buch — wählen Sie eine und legen Sie los.
Die Einrichtung erfolgt Schritt für Schritt in Java Install und Java Environment Setup.
Ein erster Blick auf ein Java-Programm
Ein vollständiges Hello World werden Sie in Java Hello World Program schreiben. Hier sehen Sie zunächst, wie ein minimales Java-Programm aussieht — derselbe Code, kompiliert und auf dem Server ausgeführt:
Ein paar Dinge, die auffallen, ohne sich bereits um jedes Detail zu kümmern:
- Jedes Programm lebt innerhalb einer Klasse (hier
Hello). - Die Ausführung beginnt in einer Methode namens
mainmit der Signaturpublic static void main(String[] args). - Anweisungen enden mit Semikolons, und Blöcke sind in geschweifte Klammern
{ ... }eingeschlossen. System.out.printlnschreibt eine Zeile in die Standardausgabe.
Java-Versionen und der Release-Rhythmus
Seit Java 9 (2017) erscheint alle sechs Monate eine neue Hauptversion, wobei alle zwei Jahre eine Long-Term Support (LTS)-Version veröffentlicht wird. Die aktuellen LTS-Versionen, denen Sie bei der Arbeit am häufigsten begegnen werden, sind Java 17 und Java 21. Dieses Buch richtet sich an Java 21 und verweist auf ältere Versionen nur, wenn der Unterschied relevant ist.
Was dieses Buch behandelt
Die folgenden Kapitel führen Sie von einer frischen JDK-Installation durch die moderne Sprache: Syntaxgrundlagen, Kontrollfluss, objektorientierte Programmierung, das Collections-Framework, Ausnahmen, Generics, Lambdas und Streams, I/O, Nebenläufigkeit, JDBC, Module und neuere Funktionen wie Records, versiegelte Typen, Pattern Matching und virtuelle Threads. Die Seitenleiste gruppiert die Kapitel in 28 Teile — lesen Sie sie der Reihe nach für einen geführten Pfad, oder springen Sie zu dem, was Sie benötigen.