Java lernen: Deine ersten Schritte in die Programmierung
Was ist Java, wie arbeiten Quellcode, Compiler und JVM zusammen – und welche Version solltest du heute installieren? Dieser Einstieg vermittelt dir das Fundament für die gesamte Java-Serie.
Das Wichtigste vorab
Kurzfassung: ca. 1 Minute · vollständiger Artikel: ca. 8 Minuten
- Java ist eine statisch typisierte Allzwecksprache mit objektorientiertem Kern und einer großen Standardbibliothek.
- Der Compiler
javacübersetzt.java-Quellcode in Bytecode; die JVM führt diesen Bytecode aus. - Installiere zum Lernen ein vollständiges JDK. Ein separates JRE brauchst du dafür nicht.
- Stand August 2026 ist Java 26 die aktuelle Feature-Version und Java 25 die aktuelle LTS-Version.
- Für einen stabilen Einstieg empfiehlt sich JDK 25 LTS, sofern dein Kurs oder Projekt keine andere Version verlangt.
- Java und JavaScript sind trotz des ähnlichen Namens eigenständige Sprachen mit unterschiedlichen Laufzeitmodellen.

Java ist Programmiersprache und Plattform zugleich. Du schreibst statisch typisierten Quellcode, übersetzt ihn in Bytecode und führst ihn auf einer Java Virtual Machine aus. Dadurch eignet sich Java für langlebige Anwendungen, Backends, Cloud-Dienste, Werkzeuge und viele weitere Einsatzgebiete.
Was ist Java?
Java ist eine statisch typisierte Allzweckprogrammiersprache. „Statisch typisiert“ bedeutet: Der Typ einer Variable und eines Ausdrucks ist dem Compiler bekannt. Viele unpassende Zuweisungen oder Methodenaufrufe werden dadurch erkannt, bevor das Programm startet.
Die Sprache entstand bei Sun Microsystems und wurde 1995 öffentlich vorgestellt. Seit der Übernahme von Sun wird Java von Oracle gemeinsam mit der OpenJDK-Community weiterentwickelt. Die Sprache ist heute deutlich moderner als frühe Java-Versionen: Neben Klassen und Interfaces gehören unter anderem Lambdas, Records, Pattern Matching und leistungsfähige Werkzeuge für Nebenläufigkeit zum aktuellen Java.
Java ist stark objektorientiert, aber nicht ausschließlich auf ein einziges Paradigma beschränkt. Du kannst objektorientiert modellieren, funktionale Sprachmittel verwenden und einfache prozedurale Abläufe formulieren. Primitive Datentypen wie int oder boolean sind zudem keine Objekte.
Vom Quellcode zum laufenden Programm
Eine klassische Java-Datei durchläuft zwei wesentliche Schritte:
- Du speicherst den lesbaren Quellcode in einer Datei mit der Endung
.java. - Der Compiler
javacerzeugt daraus eine oder mehrere.class-Dateien mit Java-Bytecode. - Der Launcher
javastartet eine JVM, lädt die benötigten Klassen und führt den Bytecode aus.
Der Weg deines Programms
Java-Quellcode (.java) → javac → Bytecode (.class) → JVM → Ausführung auf dem jeweiligen System
Die JVM interpretiert Bytecode nicht einfach nur Zeile für Zeile. Moderne Laufzeiten analysieren den ausgeführten Code und können häufig verwendete Bereiche zur Laufzeit in optimierten Maschinencode übersetzen. Dieses Verfahren wird als Just-in-Time-Kompilierung, kurz JIT, bezeichnet.
Für kleine Lernprogramme gibt es außerdem einen bequemeren Weg: Seit Java 11 kann der java-Launcher eine einzelne Quellcodedatei direkt starten. Der nötige Kompilierschritt geschieht dann im Hintergrund.
JDK, JVM und JRE verständlich unterscheiden
| Begriff | Aufgabe | Was du als Einsteiger wissen musst |
|---|---|---|
| JDK Java Development Kit |
Enthält Entwicklungswerkzeuge wie javac, java, javadoc und die Laufzeit. |
Das JDK wird installiert, wenn du Java-Programme entwickeln möchtest. |
| JVM Java Virtual Machine |
Lädt, prüft und führt Java-Bytecode auf dem jeweiligen Betriebssystem aus. | Sie bildet die Abstraktionsschicht zwischen Bytecode und konkreter Hardware. |
| JRE Java Runtime Environment |
Bezeichnet traditionell die Laufzeitumgebung aus JVM und benötigten Bibliotheken. | Fürs Lernen installierst du heute normalerweise direkt ein JDK; separate JRE-Downloads spielen eine geringere Rolle. |
Das JDK ist keine alternative Programmiersprache und die JVM kein Compiler. Das JDK liefert Werkzeuge; die JVM ist die Laufzeit für den erzeugten Bytecode.
Was „Write Once, Run Anywhere“ wirklich bedeutet
Java wurde mit dem Gedanken bekannt, ein Programm einmal zu übersetzen und denselben Bytecode auf unterschiedlichen Systemen auszuführen. Voraussetzung ist eine kompatible JVM. Der Bytecode ist also nicht direkt an Windows, macOS oder Linux gebunden.
Dieses Prinzip macht Java sehr portabel, ist aber kein grenzenloses Versprechen. Unterschiede können beispielsweise entstehen durch:
- betriebssystemspezifische Dateipfade und Zeichensätze,
- native Bibliotheken oder Hardwarezugriffe,
- unterschiedliche Java-Versionen,
- externe Dienste, Konfigurationen und Berechtigungen,
- nicht verfügbare Bibliotheken oder fehlerhafte Paketierung.
Portabel heißt nicht ungeprüft
Auch plattformunabhängiger Bytecode sollte auf allen vorgesehenen Zielsystemen getestet werden. WORA reduziert plattformspezifische Arbeit, ersetzt aber keine saubere Konfiguration und automatisierte Tests.
Warum lohnt es sich, Java zu lernen?
Klare Rückmeldung des Compilers
Java prüft Typen und viele Sprachregeln vor dem Start. Fehlermeldungen können anfangs ungewohnt sein, helfen dir aber, Ursache und Wirkung systematisch zu verstehen.
Ausgereifte Standardbibliothek
Collections, Dateien, Netzwerkzugriffe, Datum und Uhrzeit, Nebenläufigkeit und viele weitere Grundlagen sind bereits Teil der Plattform.
Starkes Werkzeug-Ökosystem
IDEs, Build-Werkzeuge, Testframeworks, Profiler und Monitoring-Lösungen begleiten Java-Projekte vom ersten Beispiel bis zum Produktivbetrieb.
Langlebige Grundlagen
Klassen, Interfaces, Typen, Exceptions und Tests sind Konzepte, die auch außerhalb von Java nützlich bleiben und sich auf andere Sprachen übertragen lassen.
Automatische Speicherverwaltung nimmt dir viele manuelle Aufgaben ab. Der Garbage Collector gibt nicht mehr erreichbaren Speicher wieder frei. Das verhindert jedoch nicht jede Form von Speicherproblem: Eine Anwendung kann weiterhin unnötig viele Objekte festhalten oder Ressourcen wie Dateien und Netzwerkverbindungen falsch verwalten.
Wo wird Java eingesetzt?
| Bereich | Beispiele | Warum Java dort passt |
|---|---|---|
| Backend und Web | REST-APIs, Geschäftslogik, Microservices | Reife Bibliotheken, starke Frameworks und gute Beobachtbarkeit |
| Unternehmenssoftware | Finanzsysteme, Warenwirtschaft, Integrationsplattformen | Lange Wartungszeiträume, stabile APIs und große Entwicklerbasis |
| Cloud und verteilte Systeme | Containerisierte Dienste, Messaging, Datenverarbeitung | Leistungsfähige Laufzeit und breites Server-Ökosystem |
| Werkzeuge und Desktop | Entwicklungswerkzeuge, interne Anwendungen, JavaFX-Programme | Plattformübergreifende Laufzeit und umfangreiche APIs |
| JVM-Ökosystem | Gemeinsame Bibliotheken für Java, Kotlin und weitere JVM-Sprachen | Interoperabilität auf derselben virtuellen Maschine |
Java ist nicht für jede Aufgabe automatisch die beste Wahl. Für ein kleines Browser-Skript, ein kurzes Shell-Werkzeug oder eine rein native Mobilanwendung können andere Sprachen besser passen. Eine gute Technologieentscheidung berücksichtigt Team, Zielplattform, Bibliotheken, Betrieb und Lebensdauer des Projekts.
Welche Java-Version solltest du 2026 verwenden?
Java erscheint in regelmäßigen Feature-Releases. Zusätzlich werden bestimmte Versionen von Anbietern langfristig unterstützt. Diese Versionen werden als LTS – Long-Term Support – bezeichnet.
| Version | Einordnung | Empfehlung |
|---|---|---|
| Java 26 | Aktuelle Feature-Version, veröffentlicht im März 2026 | Gut zum Ausprobieren aktueller stabiler Funktionen; kürzeres Supportfenster |
| Java 25 | Aktuelle LTS-Version, veröffentlicht im September 2025 | Empfohlener Ausgangspunkt für diese Lernserie und neue langlebige Projekte |
| Java 21 | Weiterhin verbreitete LTS-Version | Sinnvoll, wenn ein bestehendes Projekt, Kurs oder Arbeitgeber sie vorgibt |
LTS ist keine Eigenschaft der Syntax. Sie beschreibt die geplante Wartungs- und Supportstrategie eines Anbieters für eine konkrete JDK-Distribution. Oracle JDK, Eclipse Temurin, Amazon Corretto und andere OpenJDK-Distributionen können sich bei Lizenz, Updatezeitraum und Supportangebot unterscheiden.
Ein erster Blick auf Java-Code
Das klassische erste Programm besteht aus einer Klasse und einer main-Methode. Diese ausführliche Form ist weiterhin wichtig, weil du ihr in Dokumentationen, Projekten und älteren Java-Versionen überall begegnest.
public class HelloJava {
public static void main(String[] args) {
System.out.println("Hallo, Java!");
}
}
| Code | Bedeutung |
|---|---|
public class HelloJava |
Deklariert eine öffentlich sichtbare Klasse. Der Dateiname lautet deshalb HelloJava.java. |
public static void main(String[] args) |
Klassischer Programmeinstieg, den der Java-Launcher aufrufen kann. |
System.out.println(...) |
Schreibt Text und anschließend einen Zeilenumbruch auf die Standardausgabe. |
{ } |
Geschweifte Klammern begrenzen den Inhalt von Klasse und Methode. |
Nach der Installation eines JDK kannst du die Datei klassisch kompilieren und starten:
javac HelloJava.java
java HelloJava
javac erzeugt die Datei HelloJava.class. Beim Start gibst du den Klassennamen ohne .class an. Für dieses einzelne Lernprogramm funktioniert seit Java 11 alternativ auch der direkte Start:
java HelloJava.java
Java unterscheidet Groß- und Kleinschreibung
HelloJava, hellojava und helloJava sind verschiedene Namen. Auch String und System müssen exakt geschrieben werden.
Java und Kotlin: zwei Sprachen auf der JVM
Kotlin ist eine moderne, statisch typisierte Sprache, die unter anderem für die JVM kompiliert werden kann. Java- und Kotlin-Code lassen sich in einem Projekt kombinieren und können gegenseitig auf Klassen und Bibliotheken zugreifen.
| Aspekt | Java | Kotlin |
|---|---|---|
| Schreibweise | Oft ausführlicher und dadurch anfangs gut sichtbar strukturiert | Kompakter, mit mehr automatischer Typableitung |
| Null-Sicherheit | Referenztypen können grundsätzlich null enthalten |
Nullable Typen werden mit ? ausdrücklich markiert |
| Ökosystem | Sehr große bestehende Code- und Bibliotheksbasis | Nutzt Java-Bibliotheken und ergänzt das JVM-Ökosystem |
| Lerneffekt | Vermittelt JVM- und Typgrundlagen sehr explizit | Zeigt dieselben Grundlagen mit anderen Sprachentscheidungen |
fun main() {
println("Hallo, Kotlin!")
}
Du musst dich für den Einstieg nicht gegen eine der beiden Sprachen entscheiden. Solide Java-Kenntnisse helfen dir, JVM, Bibliotheken, Build-Prozesse und bestehende Projekte zu verstehen. Kotlin lässt sich später gezielt ergänzen.
Dein Lernweg durch die Java-Serie
Die nächsten Artikel bauen die Grundlagen schrittweise auf. Du musst noch keine Entwicklungsumgebung installiert haben – genau damit geht es im nächsten Beitrag weiter.
- Entwicklungsumgebung einrichten: JDK installieren, Version prüfen und eine IDE auswählen.
- Syntax und Datentypen: Variablen, primitive Typen, Strings und grundlegende Schreibregeln verstehen.
- Operatoren und Kontrollstrukturen: Berechnungen, Bedingungen und Schleifen formulieren.
- Methoden und Objektorientierung: Verantwortung in wiederverwendbaren Typen strukturieren.
- Exceptions und Nebenläufigkeit: Fehler und parallele Abläufe kontrolliert behandeln.
Glossar
- Bytecode
- Plattformneutrales Format in
.class-Dateien, das eine JVM laden und ausführen kann. - Compiler
- Werkzeug, das Quellcode analysiert und in eine andere Darstellung übersetzt. Bei Java übernimmt dies typischerweise
javac. - JDK
- Java Development Kit mit Compiler, Launcher, Laufzeit, Bibliotheken und weiteren Entwicklungswerkzeugen.
- JVM
- Java Virtual Machine, die Java-Bytecode auf einer konkreten Plattform ausführt.
- LTS
- Long-Term Support: längerfristige Wartungszusage eines JDK-Anbieters für eine bestimmte Version.
- OpenJDK
- Open-Source-Referenzprojekt, auf dessen Code verschiedene JDK-Distributionen basieren.
- Quellcode
- Für Menschen lesbarer Programmtext, in Java üblicherweise in Dateien mit der Endung
.java.
Fazit: Java ist ein solides Fundament
Java verbindet ein klares Typsystem mit einer portablen Laufzeit, ausgereiften Werkzeugen und einem breiten Bibliotheksökosystem. Das macht die Sprache zu einem guten Einstieg – und zugleich zu einer Plattform, die auch in großen, langlebigen Anwendungen eingesetzt wird.
Für den Start brauchst du keine vollständige Entwicklungslandschaft und keine Frameworks. Ein JDK, ein Editor oder eine IDE und ein kleines Programm genügen. Im nächsten Teil richtest du genau diese Umgebung Schritt für Schritt ein.











tiny-tool.de
tiny-tool.de