Java 11-17 New Features

Java 11-17 New Features

Dauer: 3 Tage, Tageskurs
Kurssprache: deutsch, Unterrichtsmaterial überwiegend in englischer Sprache

Der 3-tägige Kurs bringt den Teilnehmenden anhand vieler praktischen Beispiele und Übungen die neuen Features der Java-Versionen 11 bis 17 näher.

Mit JShell existiert nun ein Werkzeug, das sich ideal zum Ausprobieren neuer Klassen bzw. Funktionalitäten im REPL-Stil eignet.

Ab der 10er-Version kann man bei lokalen Variablen den Referenztyp weglassen. Der Compiler bestimmt diesen dank Typinferenz dann selbst.

Im 11er-Release wurde die Funktionalität des neuen HTTP Client API noch deutlich erweitert. So unterstützt diese nun HTTP/2, WebSockets, Server Pushs, asynchrone Aufrufe und reaktive Streams. Viele neuen Methoden lassen sich auch in der String-Klasse finden. Massiv ändert sich ab Java 11 die Support- und Lizenzpolitik von Oracle.

Die Nummer 12 stellte eine neue Syntax für switch-Anweisungen vor. Weiters kann der Entwickler ab sofort eigene Microbenchmarks implementieren.

Mit Java SE 13 kamen Text Blocks für mehrzeilige Zeichenketten dazu. Der Z Garbage Collector (ZGC), der selbst riesige Heaps effizient verwalten kann, wurde in verbesserter Form bereitgestellt.

Die 14er-Version führte das Pattern Matching für instanceof ein, verspricht bei NullPointerExceptions hilfreiche Fehlermeldungen auszugeben und bietet mit dem Record-Typ nun eine einfache Möglichkeit zur Definition von immutable Objekten.

In Version 15 wurde Sealed Classes und Interfaces eingeführt, die dem Programmierer die Möglichkeit bietet, die Vererbung dieser Klasse einzuschränken.

Das Pattern Matching in Zusammenhang mit dem instanceof Operator bietet eine einfachere Möglichkeit Fallunterscheidung anhand des Objekttyps umzusetzen.

In Java 16 wurden Records und Sealed Classes nochmals erweitert bzw. angepasst.

Java 17 ist schließlich das neue LTS (Long Term Support) Release, das Java 11 nachfolgt. Alle von Java 12 Java 16 entwickelten Features sind in Java 17 production-ready. Zu Java 17 wird eine Zertifizierungsprüfung zum Java Developer von Oracle angeboten.

  • Java-Entwickler, die von Java 8 oder 11 auf Java 17 umsteigen wollen

  • Wiederholung wesentlicher Java 8 Features: Lambdas, Streams, Optional (bei Bedarf)

  • Java Modularisierung (Java 9)

  • Java 9: Syntaxänderungen

    • Diamond Operator bei anonymen Klassen
    • Erweiterte @Deprecated Annotation
    • Private Methoden in Interfaces
    • Bezeichner „_“ ist ein Schlüsselwort

  • Java 9: API Änderungen

    • ProcessHandle Interface
    • Collection Factory Methoden
    • Reactive Streams
    • Erweiterungen InputStream
    • Erweiterungen Optional
    • Erweiterungen java.util.Stream
    • Erweiterungen LocalDate
    • Erweiterungen Arrays
    • Erweiterungen Objects
    • Erweiterungen CompleteableFuture
    • Optimierungen bei Strings
    • @Deprecated in Java 9

  • Java 9: JVM Änderungen

    • Änderungen Versionsschema
    • Multi-Release-Jars
    • Jshell
    • HTML 5 JavaDoc

  • Java 10: Syntaxänderungen

    • Syntaxerweiterung var
    • Java 10: API Änderungen
    • Unmodifiable Lists
    • Erweiterungen Optional
    • Erneute Änderungen Versionierung
    • Verschiedenes

  • Java 11: Syntaxänderungen

    • var Type Interference für Lambdas

  • Java 11: API Änderungen

    • Neue Hilfsmethoden der Klasse String
    • Neue Hilfsmethoden der Klasse File
    • Erneute Erweiterung Optional
    • Erweiterung Predicate
    • HTTP/2 API

  • Java 11: JVM Änderungen

    • Epsilon Garbage Collector
    • Single-File Source-Code Programme
    • Flightrecorder
    • Deprecations und Entfernungen

  • Java 12 Änderungen

    • Microbenchmark Suite
    • Erweiterungen Klasse String
    • Klasse CompactNumberFormat
    • Erweiterungen Klasse Files
    • Der Teeing Kollektor

  • Java 13 & 14 Änderungen

    • Switch Expressions
    • Verbesserungen bei NullpointerExceptions
    • Text Blocks
    • Records
    • Pattern Matching bei instanceof

  • Java 15 Änderungen

    • Support Unicode 13
    • Hidden Classes
    • Entfernung der Nashorn JavaScript Engine

  • Java 16 Änderungen

    • Foreign Memory Access API
    • Stream.toList Methode
    • Vector API (Incubator)
    • Das jpackage tool

  • Java 17 Änderungen

    • Pattern Matching for switch (preview)
    • Enhanced Pseudo-Random Number Generators
    • Removal of AOT Compiler
    • (restore) Always strict floating point semantics

    • Grundlegende Kenntnisse in der Programmiersprache Java