Migrating to Java 17 is a two day hands on course that willprovide you with the updated skills you need to develop maintainable code that easily scales into multi-core environments. Geared for developers currently working in Java 8 or Java 11 who need to migrate their skills or applications to Java 17, this course will teach students everything they need to successfully master and implement the latest features and benefits of Java 17 and become an effective Java 17 developer. There have been a lot of changes in the Java programming language since the release of Java 8 in March of 2014. This courses explores the changes that will be most noticable for Java developers who will make the transition from Java 8 to Java 17.

starstarstarstarstar

* Actual course outline may vary depending on offering center. Contact your sales representative for more information.

Learning Objectives

This course combines expert lecture, real-world demonstrations and group discussions with machine-based practical labs and exercises. Working in a hands-on learning environment led by our expert instructor, you will learn:
The difference between LTS and non-LTS versions
The (dis)advantages of preview features
How to implement data objects using the new record type
How to improve memory consumption through the use of compact Strings
The use of the new strip and inBlank methods of the String class
To define and use multi-line text blocks
To use switch expressions to assign value
To appy the yield keyword in a switch statement
The concept of pattern matching
How to apply pattern matching for instanceof
All about sealed classes and interfaces
Enhancements made to the try-with-resources construct
To use the new Helpfull Nullpointer exceptions
The thoughts behind the Java Modular system
How to define and use modules
How to use the ServiceLoader mechanism
How to use the jdeps, jlink and jpackage tools to define self-contained Java applicaitons
Methods added to the Collection and Stream API since Java 8
The use of the var keyword and local variable type inference
Private methods in interfaces
The updated Deprecated method
CompactNumberFormat

1
  • VERSIONS AND FEATURES

  • Overview of Java versions since Java 8

    (Non) LTS releases

    Preview features

    Java Language Specifications

    Java Specification Requests

    Java Enhancement Proposals


2
  • RECORDS

  • Data objects in Java

    Introduce records as carrier of immutable data

    Defining records

    The Canonical constructor

    Compact constructors


3
  • STRING AND TEXT BLOCKS

  • Discuss the definition of whitespace in Java

    Introduce the strip() methods of the String class

    The isBlank() and repeat() methods introduced in Java 11

    Using the lines() method to construct a Stream instance using a String

    Compact strings

    Introducing Text Blocks

    Indentation in text blocks


4
  • SWITCH EXPRESSIONS

  • Switch Expressions

    Using yield

    Discuss switch fall through


5
  • PATTERN MATCHING

  • Pattern Matching for instanceof

    Scope of variable when using pattern matching

    Refining Patterns in switch

    Dominance of pattern labels


6
  • SEALED CLASSES

  • Introduce sealed classes

    The sealed and permits modifier

    Sealed interfaces

    Sealed classes and pattern matching


7
  • EXCEPTION HANDLING

  • Enhanced try-with-resources

    Helpful NullpointerExceptions

    Excluding parameter names in error messages


8
  • INTRODUCING THE JAVA MODULAR SYSTEM

  • Introduce the Java Modular System

    Platform modules

    The java.base Module

    Modular Development

    (Not) using Internal APIs


9
  • THE MODULE DESCRIPTOR

  • The module descriptor module-info.java

    Defining module dependencies

    Readability and Accessibility

    Transitive dependencies and implied readability

    Exports and Accessibility

    Qualified exports

    Validity of the Module system


10
  • WORKING WITH MODULES

  • Open modules for reflection

    Encapsulation and loose coupling

    Utilizing the ServiceLoader

    The 'provides' and 'with' reserved words


11
  • JDEPS, JLINK AND JPACKAGE

  • Module Path vs Class Path

    Unnamed modules

    Using jdpes to discover class and module dependencies

    Using jlink to create Self-Contained Java Applications

    Using jpackage to Create Native Java App Installers


12
  • UPDATES TO COLLECTIONS AND STREAMS

  • Introduce enhancements to the Collection API

    Unmodifiable Collections

    Introduce new functionality of the Stream API

    Explain new intermediate Stream operations (takeWhile, dropWhile)

    Collecting Stream elements into list using the new toList method


13
  • LOCAL VARIABLE TYPE INFERENCE

  • Explain type inference

    Infering types of local variables

    The var reserved type name

    Benefits of using var

    Backward compatibilty


14
  • MORE UPDATES

  • private methods in interfaces

    The forRemoval and since attributes of the Deprecated annotation

    CompactNumberFormat

    Enhanced Pseudo-Random Number Generators


Audience

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

Language

English

Prerequisites

Students sholuld have incoming skills equivalent to or should have attended this course as a pre-requsite: TT2104-J8 Fast Track to Java 8 Programming for OO Experienced Developers

$1,995

Length: 3.0 days (24 hours)

Level:

Not Your Location? Change

Course Schedule:

Schedule select
06
Dec
Wednesday
10:00 AM ET -
6:00 PM ET
Filling Fast
Available
Loading...