O'Reilly logo
live online training icon Live Online training

Discovering Modern Java

What you need to know about Java 9, 10, 11, and beyond

Henri Tremblay

Java continues to roll out new releases at a very fast pace. We are now nearing Java 12. A lot of features have been added since Java 8. Some of these new features have proven to be extremely useful. For example, immutable collections and switch expressions.

In this Live Training, we will cover the following features in detail: Lambdas, streams, parallel programming, var type inference, module system, improvement to the collection framework, type witness, method handles and more.You will learn how to use reflection, the modern way or how a method reference is not always a drop-in replacement of a lambda.

You'll pick up new tricks that you can use in your code like how to create a tuple and assign it to a var, and look under the hood at a lambda implementation.

What you'll learn-and how you can apply it

  • How to get rid of these “Unchecked warnings” that just won’t go away
  • Java 8 lambda, streams, parallel programming tricks to make you more efficient
  • Java 9 module system to understand what it’s really about
  • Java 9, 10, 11, 12 new features
  • The new Java release process and why you should care

This training course is for you because...

  • You are a Java developer.
  • You want to be efficient.
  • You want to learn the magic tricks that will make you an expert
  • You don’t what to be left behind coding in Java 7 until retirement


  • This is not an introduction to Java. Attendees can be beginners but not first-timers.

Recommended Preparation

Recommended Follow-up

About your instructor

  • Henri Tremblay is a Java Champion. He leads EasyMock and Objenesis and contributes to Ehcache open source projects. When he was young, he developed and made popular class mocking. He was coding with pragmatism. The social side of him leads the Montréal JUG and Devoxx4kids Québec.

    He has been a developer, CTO, software architect, enterprise architect, startup founder, teacher, conference speaker and performance expert. With pragmatism.

    He loves optimization and productivity. In Java and in general. He tries to be useful. He is pragmatic.


The timeframes are only estimates and may vary according to how the class is progressing

Segment 1 Introduction Length (10 min) - Instructors will present himself and explain the way the course will be given

Segment 2 Java new delivery process Length (20 min) - What changed in the Java delivery process since Java 8 - Why it’s important. Why we should care

Segment 3 Java 5, 6, 7 unknown features Length (20 min) - Features that you need to be productive from old Java versions. - But that developers tend to ignore - 5 minutes break

Segment 4 Java 8 Length (90 min) - Quick introduction to lambdas and streams - How to do parallel programming in Java 8 - Lambda implementation under the hood - Method reference pitfall - Exception handling in the functional world - Magical tuples thanks to type inference - And much more - 10 minutes break

Segment 5 Java 9 module system Length (30 min) - The new Java module system arriving with Java 9 - How it really changes isolation between packages - What it means to you as an application developer

Segment 6 Java 9, 10, 11, 12 new features Length (60 min) - Show the main new features from Java 9 (excluding modules), 10, 11 and 12. - Explain the cool tricks you can do with them that are not that easy to realize at first

Segment 7 Conclusion Length (10 min) - Take away and say goodbye