Realdolmen Education

Détails

What's New in Java SE 8

Ce cours n'est actuellement pas prévu sur le calendrier ouvert, mais peuvent être organisé sur demande.

Demande de cours

Nombre de jours

1 day(s)

Audience

Java developers and architects who wish to delve into the new features and enhancements of Java SE 8

Prerequisites

Proficient with developing Java programs by using Java SE 7 or earlier

Objectives

Being aware of the new features and enhancements of Java SE 8

Methods

Classroom training with hands on exercises

Description

Java developers and architects who wish to delve into the new features and enhancements of Java SE 8

Contents

  • Agenda

    • Agenda
  • Introduction

    • The Java SE 8 Release
  • Interface Improvements

    • Interfaces (As We Knew Them Up To SE7)
    • Example of such an interface and its implementation
    • Problems with this approach
    • Default methods
    • Example of a default method (not overwriting impl)
    • Example of a default method (overwriting method)
    • When executing method with default signature
    • Who wins?
    • Three Resolution Rules To Know
    • Exercise on default methods.
    • A real life example
    • Static methods
    • Static methods : a sample interface
    • Static methods : a sample implementation
    • Static Methods : a sample output
    • Static Methods : Important Points
    • (Revisiting the) Anonymous Inner Classes
    • Functional Interfaces
    • Functional interfaces: things to be aware of
    • Exercise
  • Lambda?s

    • Introduction to Lambda?s
    • Syntax of Lambda Expressions
    • Syntax of Lambda Expressions: Some More Rules
    • Replacing Anonymous Inner Class
    • Calling a Functional Interface With a Lambda Expression
    • Method References
    • Method References: IntPredicates class
    • Using Lambdas to Run the Code
    • Using Method Reference to Run the Code
    • Exercise
    • Exercise: Example prime detection
    • Searching by Criteria
    • Using Aggregate Operations
    • Difference between Aggregate Operations an Iterators
    • Target Typing
    • Target Typing: Example
    • Target Typing: Example (continued)
    • Serialization
    • Serialization: Advanced
    • Lambda Expressions in GUI Applications
    • java.util.function
    • Java.util.function and lambda?s
    • Supplier & Lambdas
    • Consumer & Lambdas
    • BiConsumer & Lambda
    • Predicate & Lambda
    • UnaryOperator & Lambda
    • Functional Interface Naming Guide
    • Functional Interface Naming Guide (Textually)
    • Functional Interface Naming Guide (Methods)
  • Streams

    • What is a Stream?
    • Streams versus Collections
    • Getting Streams from Collections
    • Sequential Streams
    • Parallel Streams
    • The Fork/Join Mechanism
    • Why Not Always Parallel
    • Map, Filter, Reduce: An Example
    • Map, Filter, Reduce : e.g. a List (same for other Collections)
    • Java 8 and Big Data?
    • Pipelines and Streams
    • Collectors
    • Specialized Streams
    • Exercise
  • Java Date / Time API

    • Old Date Classes: a root cause of trouble
    • Old Date Classes: mutable objects
    • Example
    • Example of Defensive Copy
    • java.time: Instant and Duration
    • java.Time : LocalDate and Period
    • java.time: TemporalAdjusters
    • java.time: LocalTime / ZonedTime
    • Formatting Dates: DateTimeFormatter
    • Bridges Between the API?s
    • Exercise
  • Collection API Additions

    • Parallel Array Sorting
    • Sorting Collections
    • Bulk Data Operations on a Collection
    • Exercise
  • Overview of Concurrence API Additions

    • Two New Interfaces in java.util.concurrent
    • Four New Classes in java.util.concurrent
    • New Methods in java.util.concurrent.ConcurrentHashMap
    • New classes in java.util.concurrent.atomic
    • New methods in java.util.concurrent.ForkJoinPool
    • New class java.util.concurrent.locks.StampedLock
  • Overview of IO/NIO API Additions

    • IO/NIO API Additions
    • Reading files (line per line): Cool new approach
  • Overview of Reflection and Annotation Changes

    • Annotation changes: multiple annotations
    • Creating your own repeatable annotation
    • Annotation Changes: Allow Annotations on Types
    • Reflection Changes
  • Other Enhancements

    • Generic Type Inference Improvements
    • Strings
    • Comparators
    • Numbers
    • Hash code
    • Small VM
    • Nashorn Javascript Engine
    • Removal of the Permanent Generation
    • Metaspace Tuning
    • JavaFX 8
  • Rounding Up

    • What Have We Learned?
    • Questions