Was ist Java
Kurz gesagt: Java ist eine Programmiersprache für Server, Android und große Systeme: Der Code wird zu Bytecode kompiliert, und die JVM führt ihn auf jedem System aus.
Problem
Warum Java
Es gibt Hunderte von Programmiersprachen. Jede ist für etwas gut, aber nicht für alles gleich gut. Bevor du Monate mit einer von ihnen verbringst, solltest du wissen, wo du sie einsetzen wirst.
Java ist eine der am weitesten verbreiteten Sprachen für Programme, die lange ohne Pause laufen:
- die Server von Banken, Onlineshops und Buchungssystemen: der Teil, den du nicht siehst, der aber die Konten und die Bestellungen verwaltet;
- Android: Lange war das die wichtigste Sprache für Android-Apps. Heute schreibt man dort oft Kotlin, das auf derselben Grundlage läuft und Java-Code verwenden kann;
- große Systeme in Unternehmen und Behörden, an denen viele Menschen über viele Jahre bauen;
- Minecraft: Die ursprüngliche Version des Spiels (Java Edition) ist in Java geschrieben.
Java gibt es seit 1995. Deshalb gibt es riesig viele fertige Bibliotheken, Dokumentation und Antworten auf die Fragen, auf die du stoßen wirst.
Die Idee
Vom Text zum Programm
Das Programm, das du schreibst, ist normaler Text in einer Datei. Hier ist ein ganzes Programm:
public class Main { public static void main(String[] args) { System.out.println("Bestellung Nr. 1024 wurde angenommen."); }}Bestellung Nr. 1024 wurde angenommen.Mach dir um die Wörter darin vorerst keine Gedanken. Zu ihnen kommen wir in der Lektion „Dein erstes Programm“. Hier geht es um etwas anderes: Der Prozessor des Computers versteht diesen Text nicht. Etwas muss ihn übersetzen.
- Du schreibst den Quellcode in eine Datei namens
Main.java. - Der Compiler
javacprüft den Text auf Fehler und übersetzt ihn in Bytecode: eine Datei namensMain.class. Bytecode ist für keinen bestimmten Prozessor gemacht. - Die JVM (Java Virtual Machine) liest den Bytecode und führt ihn auf deinem Computer aus.
Es gibt eine JVM für Windows, macOS und Linux. Deshalb läuft dieselbe Main.class auf allen dreien ohne jede Änderung. Das nennt man Plattformunabhängigkeit.
public class Main { public static void main(String[] args) { System.out.println("Bestellung Nr. 1024 wurde angenommen."); }}Schritt für Schritt, in Worten
- Du schreibst den Quellcode: normalen Text in der Datei Main.java.
- Der Compiler javac liest den Text und prüft ihn auf Fehler.
- Heraus kommt Bytecode, die Datei Main.class. Er ist für keinen bestimmten Prozessor gemacht.
- Dieselbe Main.class geht unverändert an Windows, macOS und Linux.
- Die JVM auf jedem System führt den Bytecode aus. Die Ausgabe ist dieselbe.
Genauer, für Neugierige
- Die JVM übersetzt nicht das ganze Programm im Voraus. Sie übersetzt Teile davon in Maschinencode, während das Programm läuft, und optimiert die Teile stärker, die am häufigsten laufen. Das nennt man JIT-Kompilierung (just-in-time).
- Speicher. Jedes Programm belegt Speicher für seine Daten. In Sprachen wie C gibt der Programmierer den Speicher, den er nicht mehr braucht, selbst frei, und wenn er es vergisst oder falsch macht, belegt das Programm immer mehr Speicher oder stürzt ab. Java erledigt das für dich: Der Garbage Collector („Müllsammler“) findet die Daten, die das Programm nicht mehr erreichen kann, und gibt ihren Speicher frei.
Die Idee
Was du lernst
Der Kurs besteht aus Modulen. Jedes Modul verwendet nur, was in den Modulen davor vorkam:
- Grundlagen der Sprache: Variablen, Eingabe und Ausgabe, Berechnungen, Bedingungen, Schleifen, Arrays, Text.
- Methoden: Code, den du einmal schreibst und oft aufrufst.
- Klassen und Objekte: deine eigenen Typen, etwa
OrderoderStudent. - Vererbung und Polymorphie: was mehrere Typen gemeinsam haben, an einer Stelle.
- Fehler und Exceptions: was das Programm tut, wenn etwas schiefgeht.
- Text und Dateien: Arbeit mit Strings, Suchmustern (Regex) und Dateien.
- Collections: Listen, Stack, Queue,
HashMap. - Modernes Java: Lambda-Ausdrücke,
Streamund die neueren Möglichkeiten der Sprache. - Programme in der echten Welt: Tests, Threads, Netzwerk, Datenbanken.
Neben dem Hauptweg gibt es Spiele und Projekte: ganze Programme, die du Schritt für Schritt baust.
Die zwei Besonderheiten von Java, die oft hervorgehoben werden, sind auch im Kurs. Threads (mehrere Dinge, die das Programm gleichzeitig tut) kommen in „Programme in der echten Welt“. Reflection (ein Programm, das seine eigenen Klassen betrachtet, während es läuft) kommt in den letzten Modulen.
Die Idee
Wie du hier lernst
Jede Lektion ist eine Reihe von Karten, eine Idee pro Karte. Meist beginnt sie mit einem Problem aus dem echten Leben und zeigt dann, was wirklich passiert, oft mit einer Animation neben dem Code. Danach kommt eine kleine Aufgabe: die Ausgabe vorhersagen, das Fehlende ergänzen, den Fehler finden. Am Ende gibt es eine Übung, die du in deinem eigenen Editor löst, und einen kurzen Test.
Dein Fortschritt wird im Browser gespeichert: Die Lektion macht bei der Karte weiter, bis zu der du gekommen bist.
Die Karte des ganzen Kurses ist auf der Startseite des Kurses.
Überspring die Übungen nicht. Code lesen und Code schreiben sind verschiedene Fähigkeiten, und die zweite kommt nur vom Schreiben.
Die Idee
Fehler gehören zur Arbeit
Deine ersten Programme werden sich oft nicht kompilieren lassen. Du wirst ein Semikolon, ein Anführungszeichen oder eine geschweifte Klammer vergessen, und der Compiler wird sich weigern.
Das ist keine Note für dich. Die Fehlermeldung ist da, um zu helfen: Sie sagt dir, in welcher Zeile das Problem liegt und was es ist. Erfahrene Programmierer sehen diese Meldungen auch jeden Tag. Der Unterschied ist, dass sie gelernt haben, sie ruhig zu lesen. Wir fangen schon in der allerersten Lektion mit Code an, sie zu lesen.
Wenn etwas lange nicht klappen will, lass es liegen und komm etwas später zurück. Oft siehst du den Fehler sofort, wenn du noch einmal hinschaust.
Kurz gesagt
Kurz gesagt
- Java läuft auf Servern, auf Android, in großen Systemen und in Minecraft.
- Den Quellcode (
Main.java) kompiliertjavaczu Bytecode (Main.class), und die JVM führt ihn auf jedem System aus. - Speicher gibt der Garbage Collector automatisch frei.
- Der Kurs besteht aus Modulen, jede Lektion aus Karten. Die Übungen machst du in deinem eigenen Editor.
- Eine Fehlermeldung ist Hilfe, keine Note.
Als Nächstes machst du deinen Computer bereit: was du installieren musst, um dein erstes Programm zu starten.