Migrating from Java 8 to Java 9 | Java 9 New Features & Skills

Jumpstart your Java 9 Skills | Explore New features, Versioning, Jigsaw, JShell, Concurency, Performance Enhancements and More

TT2132

Introductory and Beyond

2 Days

Course Overview

Migrating Java 8 to Java 9 is a two-day, hands-on fast-track course geared for developers who have prior working knowledge of earlier versions of Java.  Throughout the course students learn the best practices for taking advantage of the new Java Module system as well as other new features in this major update to the Java programming language.

Course Objectives

Students who attend Migration from Java 8 to Java 9 | Transitioning to Java 9 will leave this course armed with the required skills to develop maintainable code that easily scales into multi-core environments. Geared for developers currently working in Java 8 who need to migrate their skills or applications to Java 9, this course will teach students everything they need to successfully master and implement the latest features and benefits of Java 9 and become an effective Java 9 developer. 

This “skills-centric” course is about 50% hands-on lab and 50% lecture, designed to train attendees in core next-level Java development skills, coupling the most current, effective techniques with the soundest industry practices. Working within in an engaging, hands-on learning environment, guided by our expert team, attendees will learn to:

  • Understand not only the fundamentals of the Java language, but also its importance, uses, strengths and weaknesses
  • Develop modular applications in Java
  • Migrate existing Java applications to the Java 9 platform
  • Utilize the tooling that is provided in Java 9 to migrate, monitor and optimize applications
  • Use the new JShell tool to quickly test java constructs
  • Improve implementations already using Java 8’s Stream API by utilizing the methods new in Java 9
  • Understand how the implementation of the String class has been updated to decrease the memory footprint
  • Use the enhancements made to the Concurrency API, working with CompletableFuture instance of Thread pools
  • Specific Java 9 features covered include: The Java Module System (project Jigsaw); JShell; Updated try-with-resources; Performance enhancements in Java 9; Updates to Collection and Stream API

Course Prerequisites

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

Follow-On Courses / Take After: Our core Java training courses provide students with a solid foundation for continued learning based on role, goals, or their areas of specialty.  Our Java developer learning paths offer a wide variety of follow-on courses such as:

  • Continued Java & JEE training: Intermediate to Advanced Java, JEE Essentials, Java for Web, Spring / Spring Boot, Microservices / Web Services / REST, Reactive Java Programming / RxJava, Tuning & Performance, Design Patterns & More
  • TDD / Test Driven Development, JUnit / Unit Testing, Agile development training
  • Secure Java Coding / Java Security and secure application development training
  • Mobile developer / Android training

Please see the Related Courses tab for specific Pre-Requisite courses, Related Courses or Follow On training options. Our team will be happy to help you with recommendations for next steps in your Learning Journey.

Course Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We will work with you to tune this course and level of coverage to target the skills you need most.

Session: Java 9

Lesson: Introduction to Java 9

  • Introduction to Java 9
  • Java Community Process (JCP)
  • JDK Enhancement Proposal (JEP)

Lesson: New in Java 9

  • Introduce some of the 'smaller' Java 9 topics
  • Java versioning
  • The JDK/JRE file structure
  • Deprecation
  • The jdeprscan tool
  • Multi-Release JAR Files
  • HTML 5 compliant JavaDoc

Lesson: Milling Project Coin

  • Changes made to the language since Java 6
  • Multi-catch
  • Using effectively final variables in try-with-resources
  • Suppressed Exceptions
  • Binary literals
  • Reserved underscore (Java 9)
  • Type inference in anonymous classes (Java 9)
  • @SafeVargs (updates in Java 9)
  • Default and static methods in interfaces (Java 8)
  • Private methods in interfaces (Java 9)

Lesson: Collection and Stream Updates

  • Factory methods for Immutable Collection types
  • takeWhile and dropWhile methods
  • The Stream Iterate and ofNullable methods

Session: The Java Module system (Jigsaw)

Lesson: Why JigSaw?

  • Problems with Classpath
  • Encapsulation and the public access modifier
  • Application memory footprint
  • Java 8’s compact profiles
  • Using internal JDK APIs

Lesson: Introduction to the Module System

  • Introduce Project Jigsaw
  • Classpath and Encapsulation
  • The JDK internal APIs
  • Java 9 Platform modules
  • Defining application modules
  • Define module dependencies
  • Implicit dependencies
  • Implied Readability
  • Exporting packages

Lesson: The Module Descriptor

  • Define module requirements
  • Explain qualified exports
  • Open modules for reflection
  • Use ServiceLoader
  • This provides and uses keywords

Lesson: Working with Modules

  • Being backwards compatible
  • The ModulePath and ClassPath
  • Unnamed Modules
  • Automatic Modules
  • The JLink tool

Session: JShell

Lesson: JShell

  • Introduction to JShell
  • Running Expressions in JShell
  • Importing packages
  • Defining methods and types
  • Using the JShell editor
  • Save and loading state

Session: More Java 9

Lesson: Concurrency Updates in Java 9

  • Brief overview of Concurrency in Java
  • Overview of CompletableFuture
  • Subclassing the CompletableFuture
  • The default Executor
  • New Factory methods
  • Dealing with time-outs

Lesson: Other New Java 9 Features

  • Enhancements on the Optional class
  • Improvements made in the Process API
  • The Stack-Walking API
  • The HTTP2 Client
  • The Multi-Resolution API
  • The Reactive Flow API

Lesson: Performance Optimizations

  • Performance in Java 9
  • Compact Strings
  • String deduplication
  • Ahead-Of-Time Compilation
  • Hotspot Diagnostic commands
  • The G1 Garbage collector
  • Variable and Method Handles

Lesson: Memory Management

  • Understand memory management in Java
  • Discuss the various garbage collectors
  • The Garbage-First (G1) Garbage Collector

 

Course Materials

Each student will receive a Student Guide with course notes, code samples, software tutorials, step-by-step written lab instructions, diagrams and related reference materials and links (as applicable). Students will also receive the project files (or code, if applicable) and solutions required for the hands-on work.

Hands-on Setup Made Simple! Our dedicated tech team will work with you to ensure your student machines and learning environment is setup, tested and ready to go well in advance of the course delivery date, ensuring a smooth start to class and seamless hands-on experience for your students. We offer several flexible student machine setup options including guided manual set up for simple installation directly on student machines, or cloud based / remote hosted lab solutions where students can log in to a complete separate lab environment minus any installations, or we can supply complete turn-key, pre-loaded equipment to bring ready-to-go student machines to your students or in-person facility.  Please inquire for details.

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Fresh Spring Savings!
Buy One Get One Free!

Enroll by May 31 in any TWO public classes in 2022 for the price of ONE! 

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More