| Java Training   Overview 
Java’s new release cycle introduces new features at a more rapid pace, requiring increased attention from users. This course provides in-depth coverage of the important new features through Java 11 LTS. It also provides an overview of useful new features in Java 12+ that are likely to appear in Java 17 (the next LTS release).
 Technical coverage starts with the new Java Platform Module System (JPMS), which presents a fundamental shift in how applications are organized, and interconnected to the libraries they use. We introduce modules from the ground up, show how to use them, describe your choices in usage, as well as caveats and pitfalls. We also provide guidelines for migration from non-modular applications.
 
 The course covers many other new and powerful features that will be useful to developers (see the detailed outline for specifics). The course also includes several extra optional labs and guided self-study exercises in these additional areas.
 
 The course is very hands-on, including numerous code examples and programming labs that reinforce the concepts presented, so that attendees can immediately employ what they’ve learned in their current projects.
 
 Java Training   Skills Gained
 
     Hands-OnUnderstand the new Java release cycle and Long Term Support (LTS) releasesBe familiar with significant deprecated and removed features, and how to work around themCreate and use Java modules, understanding module descriptors, modular JARs, exports and dependencies, and the modulepathUnderstand 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 eachMigrate classpath-based applications to Java 11, understanding the stages of migration and options availableRecognize the issues with 3rd party libraries in a migration effort, and how to work with them on the modulepath and classpathUse local-variable type inference with var, including lambda parametersGain a practical working knowledge of the JShell REPL tool, including working with code snippets and variables, configuration, and using external librariesUse the HTTP Client to access HTTP resources from Java, as well as understand the other options availableWork with various HTTP request and response types, using both synchronous and asynchronous techniquesOutline the new factory methods in Java Collections and understand native immutable collectionsDescribe the motivation for multi-release JAR files (MR-JARs), understand their structure, and how to create themUnderstand the runtime behavior of MR-JARs in both legacy and modern JVMs, and principles and strategies for working with them effectivelyOutline the principles of Reactive Programming and how it differs from traditional synchronous invocation modelsDescribe Reactive Streams and the role of the Flow API that defines the Java platform’s support for themUnderstand the characteristics and benefits of custom runtime imagesUse jdeps to analyze application dependencies, and create custom runtimes with jlink, for both modular and classpath-based applicationsExplore some of the more important additional features and APIs, including new features for interfaces, the Process API, new JDK tools and command line options 
many hands-on labs (minimum 50% of course)
 Supported Platforms
 
Standard: Java 11 and Eclipse IDEOther Available IDEs IntelliJ IDEA, IBM RAD (upon request)
 
 Prerequisites
 
 Working knowledge of Java programming, including use of inheritance, interfaces, and exceptions
 Java Training   Course Duration
 
 2 Days
 
 Java Training   Course outline
 
 Preface: Java State of the Union
 
Session 1: Introduction to ModulesNew Release CycleWhat's InWhat's OutThe Move to Java Modules 
Session 2: Working with Java 9 ModulesMotivation and OverviewTypes of ModulesModular JDKOur Approach 
 Session 3: Type InferenceDefining and Using ModulesServicesCompatibility and MigrationConclusion 
Session 4: JShellLocal-Variable Type InferenceBrief Overview of LambdasLocal-Variable Syntax for Lambdas 
Session 5: Http ClientIntroduction to JShellWorking with CodeUsing Libraries (Modules, Jars, etc.) 
Session 6: Other New FeaturesOverviewAPIUsage and Features 
Session 7: Custom Runtime ImagesCollection Factory MethodsMulti-Release JARsReactive ProgrammingMiscellaneousUpcoming Features in Java 12+ 
Application-Specific RuntimesBenefitsCreating Runtime Images with jlink 
 |