Java 21 Grundkurs

Nächste Termine:

KW 8, Montag 19. - Freitag 23.02.2024
Ganztägig.


Diese Schulung vermittelt den Teilnehmern einen kompakten Einstieg in die Grundlagen der professionellen Programmierung mit Java SE 21.

Die Teilnehmer lernen die notwendigen technischen Grundlagen der Programmausführung in der Java Virtual Machine (JVM) kennen und erhalten einen fundierten Überblick über die Merkmale der Programmiersprache Java in der Version 21, die im Herbst 2023 herauskam und nach den Versionen 8, 11 und 17 wieder Long Term Support genießt.

Sie lernen die grundlegenden Klassen für Standardaufgaben aus dem Alltag der Softwareentwicklung kennen. Über die Sprache hinaus wird auch das Umfeld vorgestellt und einbezogen, wie Java heutzutage in Projekten entwickelt wird, z.B. um daraus Container für ein Cloud-Deployment zu erzeugen.

Inhalt

Einführung:

  • Entstehungsgeschichte

  • Einordnung gegenüber anderen Programmiersprachen

  • Unterstützung in IDEs (Eclipse, IntelliJ, Visual Studio Code)

  • Kurzvorstellung typischer Features

  • Kompilieren und Ausführen einer Java-Anwendung

  • Versionierung

  • Java-Anbieter

Grundelemente:

  • Datentypen

  • Variablen und Zuweisung

  • Typinferenz, neues Schlüsselwort var ab Java 10

  • Operatoren, Operanden und Ausdrücke

  • Kontrollstrukturen u.a. switch

  • Arrays

  • Verarbeitung von Strings (Zeichenketten)

  • Annotationen

  • Javadoc

Objektorientierte Programmierung:

  • Klassen und Instanzen

  • Attribute und Properties

  • Referenzen

  • Grundlagen klassenbasierter Vererbung

  • Interfaces

  • Enumerations

  • Varianten innerer Klassen

  • Records

  • Sealed Klassen

Generics und Collections:

  • Generische Collections

  • Das Konzept der Generics in Java

  • Typ-Inferenz und Typ-Auslöschung (Type Erasure)

  • Generics und Vererbung (Varianz)

  • Bequemere Arten der Collectionerzeugung ab Java 9

  • Immutable Collections

  • Generische Interfaces, Klassen und Methoden

  • Sequenced Collections

Funktionale Programmierung mit Lambdas und Streams:

  • Lambda-Ausdrücke seit Java 8

  • Syntaxvarianten

  • Streams

  • Umgang mit Optionals

  • Möglichkeit der Parallelverarbeitung

  • Erzeugung von Streams

  • Mittlere Operationen

  • Terminale Operationen z.B. reduce

  • Ausführlich: Collectors

Fehlerbehandlung:

  • Grundlegende Konzepte: System-Exceptions und Runtime-Exceptions

  • Exception-Klassen aus dem Java Runtime Environment (JRE)

  • Exceptions auslösen

  • Exceptions fangen und weiter werfen: try, catch und finally

  • Try-with-resource und das AutoCloseable-Interface

  • Assertions

Standard-Bibliotheken

  • Strings und reguläre Ausdrücke

  • Ein- und Ausgabe, Formatierung

  • Mathematische Funktionen

  • Arbeiten mit Dateien

  • Utilities in Files, Paths

  • Datum- und Zeit-APIs

  • Lokalisierung

  • Leichtgewichtige Threads in Java 21

  • Structured Concurrency

  • NetzwerkClient synchron und asynchron

  • CompletableFuture

  • Kurzvorstellung: Reactive Streams

Ausführungsmodell

  • Mitgelieferte Tools z.B. Docgenerierung, Sicht auf Abhängigkeiten

  • Speicherverwaltung und Garbage Collection

  • Arbeitsweise der Klassenlader (ClassLoader)

  • Bau mit Buildtools: Maven und Gradle

  • Erzeugung von Docker-Containern

  • Microservices

  • GraalVM: Native Builds

Das Modulsystem

  • Vorgeschichte und Einordnung

  • Realisierung

  • Abhängigkeiten

  • Services

Kurze Ausblicke

  • Hintergrund: Projekte Amber, Loom, Valhalla, Panama

  • Die Previews in Java 21 (String Templates, ...)

  • Überblick heutiges Umfeld: Tools für Source Control, CI/CD

  • Serverseitiger Einsatz mit JakartaEE oder Spring

  • Einsatz in Cloud z.B. AWS

  • Zielgruppe

    Es richtet sich an Entwickler, die bereits Praxiserfahrung mit anderen Sprachen als Java haben.

  • Voraussetzungen

    • Erfahrung einer modernen Programmiersprache z.B. Python, Javascript, C++, C#

    • Grundkenntnisse in objektorientierter und in funktionaler Programmierung

  • Dauer

    5 Tage.

  • Preis

    € 1.950 zzgl. MwSt.