Exam 1Z0-817: Upgrade OCP Java 6, 7 & 8 to Java SE 11 Developer Study Guide

Mikalai Zaikin


Belarus
Minsk

Redistribution of this document is permitted as long as it is not used for profits.

March 2019

Revision History
Revision commit 047d49bc6456040ed6abe246d33eda936506f790Date: Sun Apr 21 22:09:19 2019 +0300Author: Mikalai Zaikin <mzaikin@gmail.com>

c6s2 fix

Revision commit b28a306b8e0feca9318ec18532890f16ee17ff38Date: Sun Apr 21 22:00:53 2019 +0300Author: Mikalai Zaikin <mzaikin@gmail.com>

c6s2 completed

Revision commit ba1b2fb63de7f7bb2a15be980d6440026e352c2eDate: Sun Apr 21 13:46:47 2019 +0300Author: Mikalai Zaikin <mzaikin@gmail.com>

c6s1 completed

Abstract

The purpose of this document is to help in preparation for Upgrade OCP Java 6, 7 & 8 to Java SE 11 Developer Test (Exam 1Z0-817).

This document should not be used as the only study material for Upgrade OCP Java 6, 7 & 8 to Java SE 11 Developer Test (Exam 1Z0-817). It might cover not all objective topics, and it might be not enough. I tried to make this document as much accurate as possible, but if you find any error, please let me know.


Preface
I. Exam Objectives
1. Understanding Modules
1.1. Describe the Modular JDK
1.2. Declare modules and enable access between modules
1.3. Describe how a modular project is compiled and run
2. Services in a Modular Application
2.1. Describe the components of Services including directives
2.2. Design a service type, load the services using ServiceLoader, check for dependencies of the services including consumer module and provider module
3. Java Interfaces
3.1. Create and use methods in interfaces
3.2. Define and write functional interfaces
4. Lambda Operations on Streams
4.1. Extract stream data using map, peek, and flatMap methods
4.2. Search stream data using search findFirst, findAny, anyMatch, allMatch and noneMatch methods
4.3. Use the Optional class
4.4. Perform calculations using count, max, min, average and sum stream operations
4.5. Sort a collection using lambda expressions
4.6. Use Collectors with streams, including the groupingBy and partitioningBy operation
5. Java File I/O (NIO.2)
5.1. Use Path interface to operate on file and directory paths
5.2. Use Files class to check, delete, copy or move a file or directory
5.3. Use Stream API with Files
6. Migration to a Modular Application
6.1. Migrate the application developed using a Java version prior to SE 9 to SE 11 including top-down and bottom-up migration, splitting a Java SE 8 application into modules for migration
6.2. Use jdeps to determine dependencies and identify way to address the cyclic dependencies
7. Local-Variable Type Inference
7.1. Use local-variable type inference
7.2. Create and use lambda expressions with local-variable type inferred parameters
8. Lambda Expressions
8.1. Create and use lambda expressions
8.2. Use lambda expressions and method references
8.3. Use built-in functional interfaces including Predicate, Consumer, Function, and Supplier
8.4. Use primitive and binary variations of base interfaces of java.util.function package
9. Parallel Streams
9.1. Develop the code that use parallel streams
9.2. Implement decomposition and reduction with streams
10. Language Enhancements
10.1. Use try-with-resources construct
10.2. Develop code that handles multiple Exception types in a single catch block
Bibliography
II. Appendixes
1. Additional materials
1.1. How to build JDK module graph
1.2. ZZ
Professional hosting         Exam 1Z0-817: Upgrade OCP Java 6, 7 & 8 to Java SE 11 Developer Quiz     Exam 1Z0-810: Upgrade to Java SE 8 Programmer Quiz