O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Moving to Java 9: Better Design and Simpler Code

Video Description

4+ Hours of Video Instruction

Java 9 introduces new features and functions that will make your code simpler and easier to read and will make for better deployment and documentation as well. There are also a number of changes, however, that might have unexpected consequences for your applications. This video covers the advantages of Java 9 and how to manage risks when migrating an application to this version.

Description

In Moving to Java 9 LiveLessons, Java Champion Trisha Gee introduces the key new features and shows how to migrate existing Java 8 applications to Java 9 in order to make use of these powerful features.

You will learn how Java 9 enables:
  • More secure applications
  • Better design through improved encapsulation and separation of concerns
  • Cleaner, easier to read code
After quickly showing how to check your existing Java 8 code for compatibility before switching to Java 9, Trisha then reviews how Java 9 Modules work, what they are, why you might use them, and how to make your applications modular. In this training, she also covers what Reactive Streams are and how and where to use them, before moving on to look at JShell, the Java REPL.

Along the way, Trisha discusses the many advantages of switching to Java 9, including:
  • Better use of memory
  • Better performance of secure applications, locking, and graphics.
  • Better use of hardware
  • Better and easier to navigate documentation
  • Prettier graphics, particularly for Windows and Linux
  • Faster compilation

Related Code Files:
The code for this training can be found at https://github.com/trishagee/sense-nine.

About the Instructor

Trisha Gee has developed Java applications for a range of industries, including finance, manufacturing, technology, open source, and non-profit, for companies of all sizes. She has expertise in Java high-performance systems, and is passionate about enabling developer productivity. Trisha blogs regularly on subjects that she thinks developers and other humans should care about. She’s a leader of the Sevilla Java User Group, a key member of the London Java Community and a Java Champion.

https://twitter.com/trisha_gee
https://es.linkedin.com/in/trishagee

Skill Level

  • Intermediate
What You Will Learn
  • How best to prepare your application for Java 9
  • What is Jigsaw and the Java Platform Module System
  • What is the Reactive Streams API and why is it useful
  • What is a REPL and how to use JShell
Who Should Take This Course

Java developers who are working on an existing system. From a technical point of view, this is suitable for developers working with Java every day, but senior/lead developers and architects will find this talk useful to decide whether to apply these changes in their applications, and to provide guidance to the rest of their teams.

Course Requirements
  • Experience with the Java Programming language
Lesson Descriptions

LESSON 1: Getting Ready for Java 9
In this lesson, you look at what you can do to prepare your application for Java 9 without even having to use it. You look at which compiler warnings in Java 8 should be addressed and how to fix them. You see how to use the jdeps tool to find code that needs to be updated before you can use Java 9. You also step through an example of compiling a project in Java 9 that hasn't been through these steps to see what kind of problems you might face.

LESSON 2: The Java Platform Module System
Project Jigsaw and Java Modularity are the big ticket items for Java 9, so in this lesson you take a look at what these are. First, you find out what Project Jigsaw is and how this differs from the Java Platform Module System. Next, you walk through a simple example of creating a modular application, and you use the link tool to create a very small image of Java and our application. Then you migrate an existing application to use the Java Module System. You see how visualizing dependencies and modules can help you to better understand the design, and finally wrap up the lesson with a summary of the advantages and disadvantages of migrating to using JPMS.

LESSON 3: Reactive Programming with Java 9
This latest version of Java comes with the Reactive Streams API as part of the language, so first you need to understand what this is and what it means. You take a look at how your existing application could benefit from using the Reactive Streams API and show how to use it in your architecture. You then use two different Reactive libraries within your application to see what you can do with Reactive Programming. Finally, you explore how Reactive Streams are different from Java 8 Streams.

LESSON 4: JShell, the Java REPL
A Read Eval Print Loop for Java is a new way of working, so you need to understand what a REPL is and what it provides. You also take a quick look at how the introduction of a REPL can change the way you work inside your IDE.

LESSON 5: API Changes in Java 9
In this lesson, you learn about the wide variety of small language changes in Java 9 that are going to help you. First, you have Convenience Factory Methods for Collections, then the small changes from Milling Project Coin. You play with two new methods on the Streams API, take a look at the new methods on Optional, and go through practical examples of using the new Stack Walking API and the updates to the Process API.

LESSON 6: Other Interesting Changes in Java 9
In this lesson, you cover pretty much everything else in Java 9 you should be aware of that you haven't already looked at, including multi-release JAR files, the updated deprecation, updates to Javadoc, and other changes that might impact your application.

About Pearson Video Training

Pearson publishes expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. These professional and personal technology videos feature world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, Pearson IT Certification, Prentice Hall, Sams, and Que Topics include: IT Certification, Network Security, Cisco Technology, Programming, Web Development, Mobile Development, and more. Learn more about Pearson Video training at http://www.informit.com/video.

Table of Contents

  1. Introduction
    1. Moving to Java 9: Introduction 00:02:21
  2. Before You Begin
    1. Before You Begin 00:02:32
  3. Lesson 1: Getting Ready for Java 9
    1. Learning objectives 00:00:36
    2. 1.1 Fixing warnings in Java 8 and using JDeps 00:10:59
    3. 1.2 Compiling with Java 9 00:02:42
  4. Lesson 2: The Java Platform Module System
    1. Learning objectives 00:00:53
    2. 2.1 What is Jigsaw? 00:04:26
    3. 2.2 What is the Java Platform Module System (JPMS)? 00:05:41
    4. 2.3 Creating Modules 00:11:36
    5. 2.4 JLINK 00:05:54
    6. 2.5 Introducing Modules to existing code 00:23:00
    7. 2.6 Using jdeps to identify Module dependencies 00:09:24
    8. 2.7 Visualizing dependencies 00:11:58
    9. 2.8 JPMS—pros and cons 00:04:36
  5. Lesson 3: Reactive Programming with Java 9
    1. Learning objectives 00:00:40
    2. 3.1 Reactive Streams in Java 9 00:04:56
    3. 3.2 Using Reactive Streams 00:14:33
    4. 3.3 The Power of Reactive Programming 00:26:21
    5. 3.4 Reactive Streams vs Java 8 Streams 00:06:34
  6. Lesson 4: JShell, the Java REPL
    1. Learning objectives 00:00:24
    2. 4.1 What is a REPL and what does it give us? 00:11:45
    3. 4.2 Using the REPL inside IntelliJ IDEA 00:05:21
  7. Lesson 5: API Changes in Java 9
    1. Learning objectives 00:00:38
    2. 5.1 Convenience Factory Methods for Collections 00:09:48
    3. 5.2 Milling Project Coin 00:05:29
    4. 5.3 New Methods on the Streams API 00:04:51
    5. 5.4 New Methods on Optional 00:07:50
    6. 5.5 Stack Walking API 00:07:44
    7. 5.6 Process API Updates 00:08:15
  8. Lesson 6: Other Interesting Changes
    1. Learning objectives 00:00:27
    2. 6.1 Multi Release JAR Files 00:10:25
    3. 6.2 Updated Deprecation 00:03:34
    4. 6.3 Javadoc updates 00:02:12
    5. 6.4 Javadoc features that may impact your application 00:06:44
  9. Wrap Up
    1. Wrap Up 00:07:10
  10. Summary
    1. Moving to Java 9: Summary 00:01:26