OCP 17 - 1Z0-829
Main Certification 1z0-817 topics
These are the topics that this exam covers and that are required to pass the exam:
- Java Fundamentals
    - Introduction to Java interfaces
- Introduction to functional interfaces and lambda expressions
- Local Variable Type Inference
- Language Enhancements (Java fundamentals)
 
- Generics and Collections - Java Stream API
- Java Functional Programming
    - Built-in Functional Interfaces
- Lambda Operations on Streams
 
- Exceptions, Assertions and Localization
    - Exception Handling
- Assertions
- Localization & Internationalization
 
- Modular Applications
- Concurrence
    - Parallel Streams
 
- Java File I/O (NIO.2)
Main Certification 1z0-819 topics
Taking into account that the 1z0-817 will be removed here are the other chapters related to 1z0-819:
- Annotations
    - Purpose and typical annotations usage
- Apply annotaions to classes and methods
- Describe commonly used annotations in the JDK
- Declare custom annotations
 
- I/O
    - Read data from and write console and file data using I/O streams
- Use I/O Streams to read and write files
- Read and write objects by using serialization
 
- JDBC
    - Connect to databases using JDBC URLs and DriverManager
- Use PreparedStatement to perform CRUD operations
- Used PreparedStatement and CallableStatement APIs to perform database operations
 
- Security
    - Prevent Denial of Servoce in Java applications
- Secure confidential information in Java application
- Prevent external attack of the code by limiting Accessibility and Extensibility, properly handling input validation and mutability
- Secure constructing sensitive objects
- Secure Serialization and Deserialization
 
Main Certification 1z0-829 exam topics
- Handing date, time, text, numeric and boolean values
    - Use primitives and wrapper classes including Math API, parentheses, type promotion, and casting to evaluate arithmetic and boolean expressions
- Manipulate text, including text blocks, using String and StringBuilder classes
- Manipulate date, time, duration, period, instant and time-zone objects using Date-Time API
 
- Controlling Program Flow
    - Create program flow control constructs including if/else, switch statements and expressions, loops, and break and continue statements
 
- Utilizing Java Object-Oriented Approach
    - Declare and instantiate Java objects including nested class objects, and explain the object life-cycle including creation, reassigning references, and garbage collection
- Create classes and records, and define and use instance and static fields and methods, constructors, and instance and static initializers
- Implement overloading, including var-arg methods
- Understand variable scopes, apply encapsulation, and make objects immutable.
- Use local variable type inference, including using it to define lambda parameters
- Implement inheritance, including abstract and sealed classes.
- Override methods, including that of an Object class.
- Utilize polymorphism and type casting, and differentiate object type versus reference type.
- Identify object types using instanceof operator and pattern matching
- Create and use interfaces, identify functional interfaces, and utilize private, static, and default interface methods
- Create and use enumerations with fields, methods and constructors
 
- Handling Exceptions
    - Handle exceptions using try/catch/finally, try-with-resources, and multi-catch blocks, including custom exceptions
 
- Working with Arrays and Collections
    - Create Java arrays, List, Set, Map and Deque collections, and produce, remove, update, retrieve and sort their elements
 
- Working with Streams and Lambda expressions
    - Use Java object and primitive Streams, including lambda expressions implementing functional interfaces, to produce, filter, transform, consume, and sort data
- Perform decomposition, concatenation and reduction, and grouping and partitioning on sequential and parallel streams
 
- Package and deploy Java code and use the Java Platform Module System
    - Define modules and expose module content including through the use of reflection, and declare module dependencies, define services, providers and consumers
- Compile Java code, produce modular and non-modular jars, runtime images, and implement migration using unnamed and automatic modules
 
- Manage concurrent code execution
    - Create worker threads using Runnable and Callable, manage the thread lifecycle, including automations provided by different Executor services and concurrent API
- Develop thread-safe code, using different locking mechanisms and concurrent API
- Process Java collections concurrently and utilise parallel streams.
 
- Use Java I/O API
    - Read and write console and file data using I/O Streams
- Serialize and de-serialize Java objects
- Construct, traverse, create, read, and write Path objects and their properties using java.nio.file API
 
- Access databases using JDBC
    - Create connections, create and execute basic, prepared and callable statements, process query results and control transactions using JDBC API
 
- Implement Localization
    - Implement localization using locales, resource bundles, parse and format messages, dates, times, and numbers including currency and percentage values
 
Recommended books
1z0-829 exam
When it was available, we will also use this book for the 1z0-829 exam and this one for the mock tests.
1z0-819 exam
We want to use this book OCP Oracle Certified Professional Java SE 11 Developer Complete Study Guide: Exam 1Z0-815 and Exam 1Z0-816. It can be used also for the Upgrade Exam 1Z0-817.
More information by one the author’s book can be found here