Schulung Effective Java

Beschreibung/Inhalt

Dieses Seminar richtet sich an professionelle Programmierer:innen, die ihre Java-Kenntnisse vertiefen und über das Grundwissen hinausgehen möchten. Ziel des Seminars ist die Vermittlung von fundiertem Praxiswissen für die industrielle Java-Programmierung. Es wird vorausgesetzt, dass die Teilnehmenden bereits erste Berührung mit Java hatten und ein grundlegendes Verständnis von Sprache und JVM mitbringen. Das Seminar baut auf diese Grundkenntnisse auf, steigt tiefer in scheinbar alltägliche Sprachmittel ein und arbeitet sich zu weniger geläufigen, fortgeschritteneren Mitteln der Sprache Java und des JDK vor.
Es werden einerseits Themen wie clone und equals behandelt, die zum täglichen Brot der Java-Programmierung gehören, aber regelmäßig falsch verstanden und inkorrekt implementiert werden. Darüber hinaus sehen wir uns weniger alltägliche Mittel an wie z.B. Reflection, Weak References, Compiler-Plugins und Class Loading. Diese Dinge braucht man nicht täglich, aber sie erweitern den Horizont und eröffnen dem Entwickler Möglichkeiten für die Problemlösung, die ohne die Beschäftigung mit den betreffenden Sprachmittel gar nicht in Erwägung gezogen würden. Außerdem erhalten die Teilnehmenden die Gelegenheit, sich mit „neuen“ Sprachmittel und JDK-APIs zu befassen, die im Laufe der Zeit zu Java hinzugekommen sind: die Generics in ihrer gesamten Komplexität inkl. Wildcards (aus Java 5), funktionale Programmiertechniken mit Lambda-Ausdrücken und dem Stream API (aus Java 8), das neue Date/Time API (aus Java 8) und das Modulsystem (aus Java 9).
Natürlich reichen 4 Tage nicht aus, um alle Themen umfassend zu behandeln. In Absprache mit den Teilnehmenden werden Schwerpunkte gesetzt: aus der Fülle der Themen suchen die Teilnehmenden aus, was sie am meisten interessiert. Themen, an denen großen Interesse besteht, werden ausführlich behandelt und in praktischen Übungen vertieft. Themen, die den Teilnehmenden weniger am Herzen liegen, werden nur kurz im Überblick besprochen.

Dieses Schulungsmodul kann mit allen aktuellen Java-Versionen (z.B. 21, 20, 19, 18) entsprechend Ihren Wünschen durchgeführt werden.

# Construction & Initialization

  • Construction & Initialization
  • Finalization, Cleaner & Automatic Resource Management

  • # Object Infrastructure
  • Copying Objects (Implementing clone())
  • Object Equality (Implementing equals())
  • Hashing Objects (Implementing hashCode())
  • Comparing Objects (Implementing compareTo())

  • # Immutability
  • final vs. Constness vs. Immutability
  • The Dual Class Idiom

  • # Generics
  • Generic Types & Methods
  • Type Variables
  • Wildcards
  • Type Erasure

  • # Lambdas & Streams
  • An Overview of Lambdas & Method References
  • An Overview of the Stream API

  • # Reflection & Dynamic Proxies
  • An Overview of the Reflecion API
  • Dynamic Proxies

  • # Annotations und Compiler Plugins
  • Declaring Annotation Types
  • Annotating Program Elements
  • Processing Annotations Using Reflection
  • Compiler-Plugins for Annotation Processing

  • # Soft & Weak References
  • Using Weak References to Avoid Unwanted References
  • Using Soft References to Implement Caches
  • Using Phantom References for Cleaning

  • # Enumeration Types
  • Syntax and Byte Code Representation
  • Pitfalls With Static Initialization of Enums

  • # Minor „New“ Language Features
    # Java 5-8
  • Autoboxing and Related Pitfalls
  • Variable Argument Lists and Related Pitfalls
  • „Diamond Operator“
  • Varargs Warnings
  • Improved re-throw & Multi-Catch
  • Automatic Resource Management
  • Strings in Switch
  • Numeric Literals
  • Default & Static Interface Methods

  • # Java 10-18
  • Local Variable Type Inference
  • Switch Expressions
  • Extended instanceof
  • Text Blocks
  • Records
  • Sealed Types
  • Pattern Matching for Switch

  • # Serialization
  • Default Serialization
  • Custom Serialization
  • Object Stream Support

  • # Class Loading
  • Class Loader Basics
  • Custom Class Loader

  • # The Java Platform Module System (JPMS)
  • Module Descriptors
  • Named, Unnamed & Automatic Modules
  • Migration Strategies

  • Dauer
    Auf Wunsch. Gerne geben wir Ihnen eine Empfehlung zur notwendigen Schulungsdauer, wenn Sie uns in der Anfrage Ihre Vorkenntnisse und Ziele nennen.
    Ort
    Online oder in Deutschland, Österreich und der Schweiz an Ihrem Firmensitz
    Schulungsdidaktik
    Nach Ihrer Wahl: Klassische Schulung mit PC-Übungen, reine Präsentation ohne PC-Übungen oder interaktiver Workshop mit Beratungsanteil