What's New in Java 9, 10, and 11

The Java world has undergone some dramatic changes recently. Gone are the days when we wait 3 years for a new version. From Java 9 onwards, a new version of Java will arrive every 6 months. We're currently on Java 11, with Java 12 pencilled in for March 2019.

This course looks at the new language features and APIs in Java 9, 10, and 11. The most important change is undoubtedly the introduction of modules, as this will affect all Java applications going forward. There are also several new APIs, including Reactive Streams, a standard HTTP2 client API, process API improvements, and more. We'll take a full look at all these new features, and discuss strategies for adopting and integrating them into your existing codebase.


2 days



  • Good experience in Java SE 8

What you'll learn

  • Java Platform Module System (JPMS)
  • Reactive streams
  • New language features in Java 9, 10, and 11
  • New APIs in Java 9, 10, and 11
  • Adoption strategies

Course details


  • Java in the 'Post-Java-8' era
  • Tool support
  • Oracle JDK vs. OpenJDK
  • Using JShell

Java 9 Modules

  • Getting started with Java modules
  • Using the modular JDK
  • Creating a modular application
  • Creating a multi-module app
  • Modularized JARs

Going Further with Java Modules

  • Standalone applications
  • Services
  • The unnamed module
  • Automatic modules
  • Migration Strategies

Reactive Streams

  • Overview of reactive programming
  • Understanding the Java Flow API
  • Implementing publishers and subscribers
  • Implementing processors
  • Practical applications

New Language Features

  • Private methods in interfaces
  • Type interference
  • Miscellaneous improvements
  • Multi-version JARs

API Enhancements

  • Process API enhancements
  • Immutable collections
  • Walking the stack trace
  • HTTP2
  • Garbage collection changes
  • Miscellaneous additional APIs