EMZETT.
Login

Kurz: // Interface, Record, Enum, sealed interface Form { double flaeche(); } record Punkt(int x, int y) {} enum Tag { MO, DI, MI } sealed interface S permits A, B {}

Teil des Kurses Java

Kapitel 22 von 22 im Kurs Java (Abschnitt „Nachschlagen“). Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Primitive Typen

TypGrößeBereich
byte8 Bit-128 bis 127
short16 Bit-32.768 bis 32.767
int32 Bit±2,1 Milliarden
long64 Bit±9,2 · 10¹⁸ (Literal 10L)
float32 Bitca. 7 Stellen (3.5f)
double64 Bitca. 15 Stellen
char16 Bitein UTF-16-Zeichen ('A')
booleantrue / false

Wichtige Klassen aus der Standardbibliothek

KlasseZweck
String, StringBuilderText
MathMathematik: abs, max, min, pow, sqrt, round, floor, ceil, random
Integer, Double, Boolean, CharacterWrapper und Umwandlung (parseInt, valueOf)
Arrays, Collections, ObjectsHilfsmethoden
List, ArrayList, Set, HashSet, Map, HashMap, Deque, ArrayDequeCollections
Optional”vielleicht ein Wert”
LocalDate, LocalDateTime, Duration, InstantDatum und Zeit
Files, PathDateien
ScannerEingabe
Random, ThreadLocalRandomZufallszahlen
Thread, ExecutorService, CompletableFutureNebenläufigkeit
Stream, CollectorsDatenströme

Syntax-Überblick

// Klasse, Konstruktor, Methode
public class Person {
    private final String name;
    public Person(String name) { this.name = name; }
    public String getName() { return name; }
}
 
// Interface, Record, Enum, sealed
interface Form { double flaeche(); }
record Punkt(int x, int y) {}
enum Tag { MO, DI, MI }
sealed interface S permits A, B {}
 
// Generics
<T extends Comparable<T>> T max(List<T> l) { ... }
 
// Lambda und Methodenreferenz
Function<Integer, Integer> f = x -> x * 2;
list.forEach(System.out::println);
 
// Ausnahmen
try { ... } catch (IOException | RuntimeException e) { ... } finally { ... }
try (var r = Files.newBufferedReader(p)) { ... }
 
// Schleifen
for (int i = 0; i < n; i++) { }
for (var x : liste) { }
while (bedingung) { }
 
// switch-Ausdruck
String s = switch (tag) { case MO, DI -> "früh"; default -> "spät"; };

Befehle

BefehlZweck
java Datei.javakleine Datei direkt ausführen
javac Datei.javaübersetzen
java KlasseKlasse starten
java -jar app.jarJAR starten
jshellinteraktive Konsole
javadocDokumentation erzeugen
mvn test, mvn packageMaven
gradle buildGradle

Häufige Ausnahmen

AusnahmeUrsache
NullPointerExceptionZugriff auf null
ArrayIndexOutOfBoundsExceptionfalscher Index
ClassCastExceptionfalscher Cast
NumberFormatExceptionungültige Zahl im Text
IllegalArgumentExceptionfalsches Argument
IllegalStateExceptionfalscher Zustand
ArithmeticExceptionz. B. Division durch 0
ConcurrentModificationExceptionListe während der Iteration geändert
IOExceptionEin-/Ausgabefehler (checked)
StackOverflowErrorzu tiefe Rekursion
OutOfMemoryErrorkein Speicher mehr

Checkliste für eigene Klassen

  1. Felder private und möglichst final
  2. Konstruktor prüft Eingaben
  3. equals, hashCode, toString bei Bedarf (oder record)
  4. Nach außen Interfaces und unveränderliche Sichten
  5. Javadoc für öffentliche Methoden
  6. Tests für Normal-, Grenz- und Fehlerfälle

Weiterlernen

  • dev.java und die offizielle Dokumentation (docs.oracle.com)
  • Spring Boot für Webdienste, JavaFX für Oberflächen, Android mit Kotlin/Java
  • Bücher: “Java ist auch eine Insel” (Christian Ullenboom, online frei), “Effective Java” (Joshua Bloch)
  • Üben mit Aufgaben auf Exercism, Codewars, Advent of Code

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Sauberer Java-Code und häufige Fehler

Alle Kapitel: Java im Überblick