New Language Features in Java 8 to 17 [Course]


In this course, we'll gradually upgrade a Java 7 application to Java 17, using new language features from Java 8, 9, 10, 11, 12, 13, 14, 15, 16, and 17. Our code will end up shrunk to a fraction of its original size and much more concise.

Here is an excerpt of the language features used:

  • Optional (Java 8)
  • New Date Time API (Java 8)
  • Default methods in interfaces (Java 8)
  • Collection factories: List.of, Set.of, Map.of (Java 9)
  • Private methods in interfaces (Java 9)
  • var (Java 10)
  • New String methods (Java 11 and 12)
  • New Files methods (Java 11 and 12)
  • HttpClient (Java 11)
  • var for lambda parameters (Java 11)
  • Switch expressions (Java 14)
  • Helpful NullPointerExceptions (Java 14)
  • Text blocks (Java 15)
  • Records (Java 16)
  • Pattern matching for instanceof (Java 16)
  • Stream.toList (Java 16)
  • Sealed classes (Java 17)
  • Pattern matching for switch (Java 17)

We also briefly look at the JShell (Java 9) and at executing Java files without compiling them first (Java 11).

We will only briefly touch lambdas, method references, and streams introduced in Java 8 and not deal with them intensively due to their scope. If you are interested in this topic, I recommend combining this course with "Java Lambdas and Streams".

The Java 9 module system is also not part of the course. Due to lack of demand, I currently do not offer corresponding training.


  • Practical experience with Java
  • Workstation with Java 17 (or higher)
  • Java IDE: I use IntelliJ and recommend this to my students as well. But you can also use Eclipse.

You can find more information about my course offerings on the overview page.

Send your inquiry to [email protected].

Course Info

Trainer: Sven Woltmann

Duration: 2 days

You can find price details on the Java trainings overview page.