Syntax ·
Variablen ·
Datentypen ·
Operatoren ·
Kontrollstrukturen ·
Strings
Java ist eine der meistgenutzten Programmiersprachen – plattformunabhängig, objektorientiert und vielseitig. Diese Grundlagen sind der Einstieg in die Java-Programmierung.
Java-Syntax ist C-ähnlich und zeichnet sich durch geschweifte Klammern {} für Codeblöcke, Semikolons ; als Anweisungsende und eine strikte Groß-/Kleinschreibung aus.
| Regel | Beschreibung |
|---|---|
| // | Einzeiliger Kommentar |
| /* ... */ | Mehrzeiliger Kommentar |
| /** ... */ | Javadoc-Kommentar (für Dokumentation) |
| ; | Semikolon beendet eine Anweisung (Pflicht!) |
| {} | Geschweifte Klammern definieren Codeblöcke |
| case-sensitiv | Java unterscheidet zwischen Groß- und Kleinschreibung |
| Dateiname | Muss mit dem Klassennamen übereinstimmen (Main.java) |
; zu beenden – das ist Pflicht und führt bei Fehlen zu Compiler-Fehlern.
Variablen in Java müssen deklariert werden – mit einem expliziten Datentyp. Java ist statisch typisiert: der Typ einer Variable kann sich nicht ändern.
| Regel | Beschreibung |
|---|---|
| Buchstaben, Ziffern, _, $ | Erlaubte Zeichen (keine Sonderzeichen) |
| Nicht mit Ziffer | Name darf nicht mit einer Zahl beginnen |
| Groß-/Kleinschreibung | Java unterscheidet zwischen Groß- und Kleinschreibung |
| Reservierte Wörter | Nicht verwenden: class, int, if, for, etc. |
| Konventionen | camelCase für Variablen (empfohlen) |
final für Konstanten – das signalisiert, dass der Wert sich nicht ändern soll und wird vom Compiler geprüft.
Datentypen in Java werden unterteilt in primitive Typen (int, double, boolean, char, etc.) und Referenztypen (Klassen, Arrays, Interfaces).
| Typ | Kategorie | Beschreibung | Beispiel |
|---|---|---|---|
| int | Primitiv | Ganze Zahlen (32 Bit) | 42, -7, 0 |
| double | Primitiv | Gleitkommazahlen (64 Bit) | 3.14, -0.5 |
| boolean | Primitiv | Wahrheitswerte | true, false |
| char | Primitiv | Einzelnes Zeichen (16 Bit Unicode) | 'A', '5', '\n' |
| byte | Primitiv | Kleine Ganzzahl (8 Bit) | 127, -128 |
| short | Primitiv | Kurze Ganzzahl (16 Bit) | 32767, -32768 |
| long | Primitiv | Große Ganzzahl (64 Bit) | 100000L, -5L |
| float | Primitiv | Kurze Gleitkommazahl (32 Bit) | 3.14f, -0.5f |
| String | Referenz | Zeichenkette (Klasse) | "Hallo", "Welt" |
| int[] | Referenz | Array von ints | {1, 2, 3} |
long mit dem Suffix L (z.B. 100000L). Für große Gleitkommazahlen mit float das Suffix f (z.B. 3.14f).
Operatoren führen Berechnungen und Vergleiche durch. Java bietet eine breite Palette von arithmetischen, Vergleichs- und logischen Operatoren.
| Kategorie | Operatoren |
|---|---|
| Arithmetik | +, -, *, /, % (Modulo) |
| Vergleich | ==, !=, <, >, <=, >= |
| Logik | && (UND), || (ODER), ! (NICHT) |
| Zuweisung | =, +=, -=, *=, /=, %= |
| Inkrement/Dekrement | ++, -- (vor oder nach dem Variablennamen) |
| Ternary | ? : (bedingte Zuweisung) |
| Bitweise | &, |, ^, ~, <<, >>, >>> |
? : ist eine kompakte Alternative zu if-else für einfache Zuweisungen: int max = (a > b) ? a : b;
Kontrollstrukturen steuern den Programmablauf – Bedingungen (if, else, switch) und Schleifen (for, while, do-while).
| Struktur | Beschreibung |
|---|---|
| if (bedingung) { ... } | Führt Block aus, wenn Bedingung true ist |
| if (bedingung) { ... } else { ... } | Alternative bei false |
| if (bedingung) { ... } else if (bedingung) { ... } | Mehrere Bedingungen prüfen |
| switch (wert) { case x: ... break; } | Mehrfachverzweigung (seit Java 14 auch mit ->) |
| for (init; bedingung; update) { ... } | Zählergesteuerte Schleife |
| for (Typ var : array) { ... } | For-Each-Schleife (für Arrays/Collections) |
| while (bedingung) { ... } | Kopfgesteuerte Schleife (prüft vorher) |
| do { ... } while (bedingung); | Fußgesteuerte Schleife (mindestens einmal) |
| break; | Beendet die aktuelle Schleife |
| continue; | Springt zum nächsten Schleifendurchlauf |
for (Typ var : array)) ist die einfachste und sicherste Art, Arrays und Collections zu durchlaufen – kein Index, keine Indexfehler.
Strings sind Zeichenketten in Java. Sie sind unveränderbar (immutable) und bieten viele Methoden zur Textverarbeitung. String ist eine Klasse, kein primitiver Typ.
| Methode | Beschreibung | Beispiel |
|---|---|---|
| length() | Länge des Strings | "Hallo".length() // 5 |
| toUpperCase() | Alle Zeichen in Großbuchstaben | "hallo".toUpperCase() // "HALLO" |
| toLowerCase() | Alle Zeichen in Kleinbuchstaben | "HALLO".toLowerCase() // "hallo" |
| trim() | Leerzeichen am Anfang/Ende entfernen | " hallo ".trim() // "hallo" |
| split(regex) | Zerlegt String in String-Array | "a,b,c".split(",") // {"a","b","c"} |
| replace(old, new) | Ersetzt alle Vorkommen | "Hallo".replace('a','e') // "Hello" |
| contains(sub) | Prüft auf Teilstring | "Hallo".contains("ll") // true |
| startsWith(prefix) | Prüft auf Anfang | "Hallo".startsWith("Ha") // true |
| endsWith(suffix) | Prüft auf Ende | "Hallo".endsWith("lo") // true |
| indexOf(sub) | Findet Position (oder -1) | "Hallo".indexOf("ll") // 2 |
| substring(start, end) | Extrahiert Teilstring | "Hallo".substring(0, 3) // "Hal" |
| charAt(index) | Gibt Zeichen an Position zurück | "Hallo".charAt(0) // 'H' |
| isEmpty() | Prüft auf leeren String | "".isEmpty() // true |
| isBlank() | Prüft auf leeren oder nur Leerzeichen (Java 11+) | " ".isBlank() // true |
trim(), toUpperCase()) gibt es moderne Alternativen mit StringBuilder oder StringBuffer für bessere Performance bei vielen Änderungen.
//
int x = 5
String
==
if
.length()
public class Main { public static void main(String[] args) { System.out.println("Hallo"); } }