Course 447:
Java 9 New Features

(2 days)


Course Description

Java 9 Standard Edition is a major feature release. The module system in Java 9 has received the most attention, but there are a significant number of other changes to the language, libraries, and tools of the JDK. Plus, there are enhancements for the JVM, including garbage collection and logging.

The goal of this 2-day course is to present the most significant features new to Java SE 9 and provide examples and experience on how to use these new features via hands-on exercises.

Learning Objectives

  • Describe the new module system of Java SE 9
  • Package an application to utilize the Java SE 9 module system
  • Identify and address requirements to migrate an application to Java SE 9
  • Build MultiRelease JAR files
  • Design interfaces which implement methods
  • Process collection data with streams more conveniently
  • Leverage JShell for fast code experiments
  • Identify and apply new methods to more conveniently work with collections, arrays, and Scanner objects
  • Identify deprecated APIs and possible alternatives

Who Should Attend

This course is suitable for anyone who is involved in developing Java applications, including Java SE developers, Java EE developers, technical architects, and project managers.


A working knowledge of Java 8 is assumed.

Course Outline

Chapter 1: Modules

  • What Is Modularity?
  • JARs as Modules and Classpath Problems
  • Introducing Java Modules

Chapter 2: Modules and the Modular JDK

  • The Modular JDK
  • Module Descriptors
  • Project Structure
  • Readability and Accessibility
  • Compiling, Linking, and Packaging Modules
  • Module Resolution and Module Paths
  • Using the Modular JDK Without Modules

Chapter 3: Defining Modules and Their Properties

  • JDK Modules
  • Modular JARs
  • Defining Module Properties
  • Defining Public APIs
  • The Module Path
  • Module Graphs

Chapter 4: Modules and Services

  • Module Services
  • Service Resolution
  • Types of Services
  • Loading and Accessing Services

Chapter 5: Migrating to Modules

  • Migration Strategies
    • Bottom Up
    • Middle Out
    • Top Down
  • Generating Module Declarations with JDeps

Chapter 6: Further Enhancements

  • Private Interface Methods
  • Optional Class Enhancements
  • Enhancements to the Stream API
  • JShell: Read-Eval-Print Loop (REPL)
  • Convenience Methods and Factory Methods for Collections
  • Convenience Methods for Arrays
  • Convenience Methods for Scanners
  • Enhanced Deprecations and Alternatives
  • Concurrency Updates
  • HTTP/2
  • Multi-Release JARs
  • What’s New in the JVM: G1 Improvements, Unified Logging
  • Miscellaneous Changes

Please Contact Your ROI Representative to Discuss Course Tailoring!