Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Modern Java: The Good Parts

Course Summary

This course covers the new language features and provides a firm grounding in key library APIs added in these versions of Java SE. A majority of Java programmers learn and use a solid core of the language that is composed mainly of features of Java from versions 5 and 6, however, the language and its libraries undergo continuous improvement, and these are often overlooked resulting in code that could easily be improved, and made easier to maintain

The course begins with learning the improvements in exception handling of Java 7, syntax and usage of lambda expressions and other Java 8 features such as method references, and understanding how to use them effectively in their designs. Next, the course explores the module system added at Java 9, and the var pseudotype that introduced local variable type inferencing in Java 10. The course concludes with a lesson on the switch expression syntax that shows up as a preview in Java 12, and how to use it.

While this course can be attended by beginners through advanced Java developers, a basic understanding and experience with Java are recommended. Hands-on exercises and labs will be provided throughout the course to reinforce learning.

Learn a solid understanding of modern programming using the most important features of Java 7 through 13.
Developers and developer teams needing to learn Modern Java.
Software Developer
Skill Level
3 Days
Related Technologies


Productivity Objectives
  • Make appropriate use of new language features from versions of Java from 7 through 13.
  • Write code that executes concurrently using parallel streams.
  • Write code that executes concurrently using CompletableFuture.
  • Create and use well-encapsulated libraries by using the Java Platform Module System.

What You'll Learn:

In the Modern Java: The Good Parts training course, you'll learn:
  • Java 7
    • Enhanced numeric literals
    • Strings in switch Statements
    • The try-with-resources Statement
    • Multi-catch and rethrowing improvements
    • Diamond operator type inferencing
    • ThreadLocalRandom
  • Java 8
    • Lambda and method reference expressions
    • Static and default methods in interfaces
    • Stream API
    • Parallel operations, parallel streams and parallel array sorting
    • New Date/Time API
    • Completable future
  • Java 9
    • JPMS -- the module system
      • Concepts and intent
      • Module directives: exports and requires
      • Module directives: open and opens
      • Defining and providing services in the module system
      • The Service loader
    • Private interface methods
    • Using final resources in try-with-resources
    • Immutable collection factories
    • RxJava
  • Java 10 & 11
    • Local variable type inferencing; the var pseudo-type
    • Lambda parameters with the var pseudo-type
    • HTTP 2.0 Client
  • Java 12 & 13
    • Switch expressions (experimental in Java 12, expected in Java 13)
“I appreciated the instructor's technique of writing live code examples rather than using fixed slide decks to present the material.”


Dive in and learn more

When transforming your workforce, it's important to have expert advice and tailored solutions. We can help. Tell us your unique needs and we'll explore ways to address them.

Let's chat

By filling out this form and clicking submit, you acknowledge our privacy policy.