Course Overview
The Java SE: Exploiting Modularity and Other New Features course introduces the Java module system and other new features, including JShell, convenience methods, new techniques for working with streams, and managing deprecated APIs. Modularity was introduced in Java SE 9, so the approach to modular application development taught in this course will be applicable to developers moving to SE 9 or other imminent releases.
Learn To:
- Design applications to take advantage of the module system and its more reliable configuration, improved security and performance, and more easily scalable applications.
- Migrate existing applications to a modular applications in a step-by-step manner, choosing which parts of the application to migrate first.
- Deal with common problems encountered in migrating an application, including, cyclic dependencies and split packages.
- Use services to make modularized applications more robust and easily extensible.
- Create multi-release JAR files that can be run on different Java releases.
- Use convenience methods to reduce code that seems verbose, inefficient or boilerplate, and increase readability.
- Use JShell to quickly run small code experiments and test new APIs.
Benefits To You
By enrolling in this course, you'll learn how to use the module system to design applications with explicit dependencies and encapsulation at the JAR level, ensuring more reliable configuration, improved security and enhanced performance. You'll also get a chance to experiment with new features that ease development. These include convenience methods that make your code more readable and succinct, and JShell, an easy way to test code snippets and APIs.
Who should attend
- Project Manager
- Java Developers
- J2EE Developer
- Java EE Developers
Prerequisites
Required Prerequisites:
- Familiarity with NetBeans or similar IDE
- Familiarity with Object-oriented programming concepts
- Familiarity with Java Collections and Enumerators
- Familiarity with JDK 8 features
Suggested Prerequisites:
- Develop applications using the Java programming languages
- Ability to use object-oriented programming techniques
- Ability to use classes commonly found in Java programs
- Administer operating systems from the command line
Course Objectives
- Identify deprecated APIs and possible alternatives
- Swap sub-optimal or tedious coding with convenience methods
- Create a modular Java application
- Identify and address common requirements in migrating older applications to modularity
- Run applications that combine modularized libraries and non-modularized libraries
- Create a custom runtime image
- Build Multi-release JAR files
- Design interfaces which implement methods
- Process stream data using new convenience methods
- Leverage JShell for fast code experiments
- Identify and apply new methods to more conveniently work with collections and arrays
Course Content
- Why Modules?
- Working with the Module System
- Modular JDK
- Creating Custom Runtime Images
- Migration
- Services
- Multi-release JAR files
- Private Interface Methods
- Enhancements to the Stream API
- JShell
- Convenience Methods for Collections
- Convenience Methods for Arrays
- Enhanced Deprecations for APIs