Course Overview

Transitioning to Java 8 is a two-day, hands-on Java 8 development training course geared for developers who have prior working knowledge of earlier versions of Java.  This is an intermediate-level Java programming course, designed for experienced Java developers who wish to get up and running with Java 8, taking advantage of all of the new features of Java 8 immediately.  Throughout the course students learn the best practices for taking advantage of the new functional programming constructs in Java as well as other new features in this major update to the Java programming language.

Note: In order to provide the broadest range of courses and class dates for this class, this course may be taught by either Wintellect or one of our training Partners.

Key Learning Areas

  • What functional programming means and what it brings to the table
  • How Lambda expressions and functional interfaces can greatly enhance other aspects of Java
  • To use the new Stream constructs to work with Collections and Collectors
  • How to work with default methods and pass methods as arguments
  • How to use the new features to support concurrency in multi-code systems
  • To work with the new Date/Time API and other new features

 Specific Java 8 features that are covered in the course include:

  • Functional programming
  • Anonymous functions
  • Lambda expressions and default methods
  • Streams and Collectors
  • New Date/Time API
  • StringJoiner and repeating annotations

Course Outline

Introduction to Lambda Expressions

Introduction to Java 8

  • Overview of Java 8 features and enhancements
  • Anonymous functions, Streams
  • Interfaces in Java 8
  • Default methods
  • Static methods
  • Multiple Inheritance

Functional Programming

  • Functional vs OO Programming
  • Anonymous Inner-classes
  • Utility Methods
  • Lambda Expressions

Lambda Expressions and Functional Interfaces

  • Lambda Expression Syntax
  • Functional Interfaces
  • Type Inference in Java 8

Streams and Lambda Expressions

Streams

  • The Stream interface
  • Reduction and Parallelism
  • Collections and Collectors
  • Filtering collection data
  • Sorting collection data

Using Lambda Expressions

  • Using Method references in Lambda Expressions
  • Optional vs null

Additional Java 8 Enhancements

New Java 8 features

  • The new Date/Time API
  • LocalDate, LocalDateTime, etc.
  • Formatting Dates
  • StringJoiner
  • Static methods on interfaces
  • Repeating and Type Annotations
  • Parallel Array Sorting
  • Improved type inference
  • Method parameter reflection
  • Updated command line tooling

Java 8 Concurrency Updates

  • Parallel data processing
  • Working with Streams in multi-core architectures
  • Using Lambda expressions with concurrency

Who Benefits

Students who attend Transitioning to Java 8 will leave this course armed with the required skills to develop maintainable code that easily scales into multi-core environments. Geared for developers with prior Java development experience, this course will teach students everything they need to successfully transition into an effective Java 8 developer.  

Prerequisites

This is an intermediate-level Java programming course, designed for experienced Java developers who wish to get up and running with Java 8 and take advantage of all of the new features of Java 8 immediately.  Attendees should have a working knowledge of developing Java applications.