LearningPatterns: Your Global Source for Java Training, Mentoring, and Consulting
Home | About LearningPatterns | Our Services | Contact Us | Printer Friendly Link

Courseware for License:

Using Java 8's New Features

Course ID: J8NEW

Java 8 introduces a number of revolutionary capabilities - many of them centered on lambda expressions and functional-style programming. These capabilities add powerful new programming techniques to the language, but also add complexity.

This concise course is focused on introducing the new capabilities and how to use them. It includes numerous code examples and programming labs that illustrate all of the new capabilities.

The course is hands on, and requires that students be comfortable with writing general Java code at an intermediate level, including the use of interfaces.

Course Information

Duration: 2 day

Hands-on: Minimum 50% hands-on

Supported Platforms: Eclipse IDE, Java 8, other IDEs upon request

Skills Gained:

Course Details appear on Next Page in Print Version

Course Details:

Session 1: What's new in Interfaces

  • Static Methods
  • Default Methods
  • Functional Interfaces

Session 2: Introducing Lambda Expressions

  • Motivation for Lambdas
  • Lambda Expression Overview
  • Lambda Expressions and Functional Interfaces
  • Using Lambda Expressions
  • Working with Method References

Session 3: The Stream API

  • Overview
    • Shortcomings of Collections
    • What are Streams?
    • Chaining - Intermediate and Terminal Operations
  • Understanding the Stream API
    • Overview - java.util.stream types (Stream, Collector, ...)
    • Keys to Understanding the API
    • Important Functional Interfaces: Predicate, Comparator, Function
  • Stream Processing
    • Using filter()
    • Sorting / Comparator.comparing()
    • Using map()
    • Other operations: peek(), distinct(), limit(), skip()
    • Result producing terminal operations - collect, min/max ...
    • void Terminal Operations - forEach()
    • Existence (e.g. anyMatch) and Finder (e.g. findAny) Operations
  • Collectors
    • Roles and Capabilities
    • Collectors.toList(), Collectors.toSet()
    • Supplier and Collectors.toCollection()
    • Partitioning and Grouping Collectors

Session 4: Parallel Processing and Concurrency

  • Overview
  • Java 8 Parallel Processing using Streams
  • Ground Rules / Requirements for Using Parallel Stream Processing
  • Multithreading / Concurrency Issues
  • Race Conditions, Data Synchronization, Locks
  • Performance Issues and Considerations

Session 5: Date/Time API

  • Overview and Limitations of Previous API
  • The Date/Time API (JSR 310)
  • Creating and Working with LocalData/LocalTime/LocalDateTime Instances
  • Formatting Date/Time
  • Localization / Time Zones
  • Periods and Durations
  • Performing Calculations on Data/Time types

Session 6: Other Capabilities

  • Compact Profiles
  • Using Optional Instead of null
  • Repeatable and Type Annotations
  • Nashorn JavaScript Engine
  • Minor New Features
LearningPatterns Inc. | http://www.LearningPatterns.com | tel:212.487.9064 | e-mail:
Copyright © 2009 LearningPatterns Inc. All rights reserved. LearningPatterns is a trademark of LearningPatterns Inc. Java, and all Java-based trademarks are registered trademarks of Sun Microsystems in the U.S. and other countries. JBoss is a registered trademark of Red Hat, Inc. in the U.S. and other countries. IBM and Rational are registered trademarks of IBM Corp. in the U.S. and other countries. All other products and company names mentioned here may be trademarks of their respective owners.