Course duration
- 2 days
Course Benefits
- Understand the new Java release cycle and Long Term Support (LTS) releases
- Be familiar with significant deprecated and removed features, and how to work around them
- Create and use Java modules, understanding module descriptors, modular JARs, exports and dependencies, and the modulepath
- Understand the structure and behavior of the modular JDK, how it supports modular applications as well as legacy classpath-based code, and the implications of strong encapsulation on each
- Migrate classpath-based applications to Java 11, understanding the stages of migration and options available
- Recognize the issues with 3rd party libraries in a migration effort, and how to work with them on the modulepath and classpath
- Use local-variable type inference with var, including lambda parameters
- Gain a practical working knowledge of the JShell REPL tool, including working with code snippets and variables, configuration, and using external libraries
- Use the HTTP Client to access HTTP resources from Java, as well as understand the other options available
- Work with various HTTP request and response types, using both synchronous and asynchronous techniques
- Outline the new factory methods in Java Collections and understand native immutable collections
- Describe the motivation for multi-release JAR files (MR-JARs), understand their structure, and how to create them
- Understand the runtime behavior of MR-JARs in both legacy and modern JVMs, and principles and strategies for working with them effectively
- Outline the principles of Reactive Programming and how it differs from traditional synchronous invocation models
- Describe Reactive Streams and the role of the Flow API that defines the Java platform’s support for them
- Understand the characteristics and benefits of custom runtime images
- Use jdeps to analyze application dependencies, and create custom runtimes with jlink, for both modular and classpath-based applications
- Explore some of the more important additional features and APIs, including new features for interfaces, the Process API, new JDK tools and command line options
Public expert-led online training from the convenience of your home, office or anywhere with an internet connection. Guaranteed to run .
Private classes are delivered for groups at your offices or a location of your choice.
Course Outline
- Introduction to Modules
- Motivation and Overview
- Types of Modules
- Modular JDK
- Our Approach
- Working with Java 9 Modules
- Defining and Using Modules
- Services
- Compatibility and Migration
- Conclusion
- Type Inference
- Local-Variable Type Inference
- Brief Overview of Lambdas
- Local-Variable Syntax for Lambdas
- JShell
- Introduction to JShell
- Working with Code
- Using Libraries (Modules, Jars, etc.)
- Http Client
- Overview
- API
- Usage and Features
- Other New Features
- Collection Factory Methods
- Multi-Release JARs
- Reactive Programming
- Miscellaneous
- Upcoming Features in Java 12+
- Custom Runtime Images
- Application-Specific Runtimes
- Benefits
- Creating Runtime Images with jlink
Class Materials
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Experience in the following is required for this Java class:
- Working knowledge of Java programming, including use of inheritance, interfaces, and exceptions
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.