Banner

Transitioning to Java 8

Live Classroom
Duration: 5 days
Live Virtual Classroom
Duration: 5 days
Pattern figure

Overview

The Transitioning to Java course is designed for developers currently working on the Java 6 or Java 7 platform, who need to migrate their skills or applications to Java 8. The course helps participants master the skills necessary to implement the latest features and benefits of Java 8 and enable them to be effective Java 8 developers. The course covers Java 8 features such as functional programming, anonymous functions, lambda expressions and default methods, streams and collectors, new date/time API, StringJoiner and repeating annotations.

What You'll Learn

  • What functional programming means and what it brings to the table
  • How Lambda expressions and functional interfaces can greatly enhance other aspects of Java
  • Explore the new ‘features’ of the Collection API
  • 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

Curriculum

  • Overview of Java 8 features and enhancements
  • Anonymous functions, Streams

  • Interfaces in Java 8
  • Default methods
  • Static methods
  • Multiple Inheritance?
  • Exercise: Interfaces

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

  • Lambda Expression Syntax
  • Functional Interfaces
  • Type Inference in Java 8
  • Method references
  • Exercise: Using Lambda

  • Introduce the ConcurrentHashMap
  • Lambda expressions and Collections
  • Exercise: Functional Collections

  • Processing Collections of data
  • The Stream interface
  • Reduction and Parallelism
  • Filtering collection data
  • Sorting Collection data
  • Map collection data
  • Find elements in Stream
  • Numeric Streams
  • Create infinite Streams
  • Sources for using Streams
  • Exercise: Working with Streams

  • Creating Collections from a Stream
  • Group elements in the Stream
  • Multi-level grouping of elements
  • Partitioning Streams
  • Exercise: Collecting

  • Introduce the new Date/Time API
  • LocalDate, LocalDateTime, etc.
  • Formatting Dates
  • Working with time zones
  • Manipulate date/time values
  • Exercise: Agenda

  • Introduce Optional
  • Implement Optional attributes
  • Lambda expressions and Optional
  • Exercise: Optional

  • StringJoiner
  • Repeating and Type Annotations
  • Parallel Array Sorting
  • Improved type inference
  • Method parameter reflection
  • Updated command line tooling
  • Exercise: Reflection
  • Exercise: Annotation Processing

  • The common thread pool
  • Atomic variables
  • LongAdder and LongAccumulator
  • CompletableFuture
  • Non-blocking asynchronous tasks
  • Exercise: CompletableFuture

  • Working with JavaScript and Java
  • Accessing Nashorn
  • Executing JavaScript from Java
  • Executing Java from JavaScript
  • Implementing a Java Interface
  • Alternatives to Nashorn
  • Exercise: Using JavaScript
waves
Ripple wave

Who should attend

This is an intermediate-level Java developer course, and is highly recommended for experienced Java programmers.

Prerequisites

Participants need to have a working knowledge of developing Java applications.

Interested in this Course?

    Ready to recode your DNA for GenAI?
    Discover how Cognixia can help.

    Get in Touch
    Pattern figure
    Ripple wave