Examples and notes to aid revision for the Java SE 17 Developer exam (1Z0-829).
This documentation is an aggregation of multiple sources and is intended as a study guide for my personal use and such, wording and examples may jump between perspectives or may appear incomplete. I make no personal gain from this other than learning.
UPDATE: Many of the items in the exam are also in the Java SE 11 exam. I recommend anyone using this material to refer to the exam notes for that. New language features for Java SE 17 will be placed within this repository ONLY.
After passing this exam, I have added a review on my blog. I hope it helps.
Topic column relate to the table in the Topics section.
Feature | Topic |
---|---|
Text Blocks | 01 |
Switch Expressions | 02 |
Pattern Matching | 03 |
Records | 03 |
Sealed Classes | 03 |
Exam Name | Oracle Java SE 17 Developer |
Exam Code | 1Z0-829 |
Duration | 90 minutes |
Number of Questions | 50 |
Passing Score | 68% |
Format | Multiple Choice Questions (MCQ) |
Topics | Details |
---|---|
01. Handling date, time, text, numeric and boolean values | - 01.01 - Use primitives and wrapper classes including Math API, parentheses, type promotion, and casting to evaluate arithmetic and boolean expression - 01.02 - Manipulate text, including text blocks, using String and StringBuilder classes - 01.03 - Manipulate date, time, duration, period, instant and time-zone objects using Date-Time API |
02. Controlling Program Flow | - 02.01 - Create program flow control constructs including if/else, switch statements and expressions, loops, and break and continue statements |
03. Utilizing Java Object-Oriented Approach | - 03.01 - Declare and instantiate Java objects including nested class objects, and explain the object life-cycle including creation, reassigning references, and garbage collection - 03.02 - Create classes and records, and define and use instance and static fields and methods, constructors, and instance and static initializers - 03.03 - Implement overloading, including var-arg methods - 03.04 - Understand variable scopes, use local variable type inference, apply encapsulation, and make objects immutable - 03.05 - Implement polymorphism and differentiate object type versus reference type. Perform type casting, identify object types using instanceof operator and pattern matching - 03.06 - Create and use interfaces, identify functional interfaces, and utilize private, static, and default interface methods - 03.07 - Create and use enumerations with fields, methods and constructors |
04. Handling Exceptions | - 04.01 - Handle exceptions using try/catch/finally, try-with-resources, and multi-catch blocks, including custom exceptions |
05. Working with Arrays and Collections | - 05.01 - Create Java arrays, List, Set, Map, and Deque collections, and add, remove, update, retrieve and sort their elements |
06. Working with Streams and Lambda expressions | - 06.01 - Use Java object and primitive Streams, including lambda expressions implementing functional interfaces, to supply, filter, map, consume, and sort data - 06.02 - Perform decomposition, concatenation and reduction, and grouping and partitioning on sequential and parallel streams |
07. Packaging and deploying Java code and use the Java Platform Module System | - 07.01 - Define modules and their dependencies, expose module content including for reflection. Define services, producers, and consumers - 07.02 - Compile Java code, produce modular and non-modular jars, runtime images, and implement migration using unnamed and automatic modules |
08. Managing concurrent code execution | - 08.01 - Create worker threads using Runnable and Callable, manage the thread lifecycle, including automations provided by different Executor services and concurrent API - 08.02 - Develop thread-safe code, using different locking mechanisms and concurrent API - 08.03 - Process Java collections concurrently including the use of parallel streams |
09. Using Java I/O API | - 09.01 - Read and write console and file data using I/O Streams - 09.02 - Serialize and de-serialize Java objects - 09.03 - Create, traverse, read, and write Path objects and their properties using java.nio.file API |
10. Accessing databases using JDBC | - 10.01 - Create connections, create and execute basic, prepared and callable statements, process query results and control transactions using JDBC API |
11. Implementing Localization | - 11.01 - Implement localization using locales, resource bundles, parse and format messages, dates, times, and numbers including currency and percentage values |
- Additionally, candidates are also expected to:
- 12.01 - Understand the basics of Java Logging API.
- 12.02 - Use Annotations such as Override, FunctionalInterface, Deprecated, SuppressWarnings, and SafeVarargs.
- 12.03 - Use generics, including wildcards.
The following are some of the key changes Oracle has made to the new exam:
- Sealed Classes and Records have been added
- Switch Expressions have been added
- Pattern Matching has been added
- Text Blocks have been added
- Math API is on the exam
- Date/Time API is back on the exam (previously on the Java 8 exam)
- Annotations and Security have been removed