A comprehensive study guide covering all official exam objectives for the Oracle Certified Professional Java SE 17 Developer certification.
This guide works best as a loop: read a chapter, test yourself with practice questions, look up unfamiliar terms in the glossary, then move to the next chapter.
18 chapters covering every exam objective. Each chapter includes key concepts, exam tips, common traps, comparison tables, and a 5-question quiz at the end.
Start Chapter 1Free timed and untimed practice with instant feedback and full explanations. Pick 10–120 questions per session. Filter by domain to drill your weak areas.
Go to practice testEvery 1Z0-829term defined and searchable. Use it when a chapter mentions a concept you haven't seen before or want a quick refresher on.
Browse glossaryExam blueprint, domain weights, passing score, duration, cost, and registration links. Start here if you're new to this certification.
View exam guideJava Basics and Object-Oriented Programming Principles
Objective 1.1 · Use primitives and wrapper classes, including operators, parentheses, type promotion, and casting.
Working with Java Data Types
Objective 1.2 · Declare and initialize variables (including those of reference type), check variable initialization, and use var for local variable type inference.
Controlling Program Flow
Objective 2.1 · Branching: if, if-else, switch, and expressions including break and continue.
Iterations and Loops
Objective 2.2 · Create and use loops: while, for, for-each, and nested loops with break and continue.
Java Object-Oriented Programming Deep Dive
Objective 3.1 · Declare and instantiate Java objects, initialize objects, and use constructors, access modifiers, and encapsulation.
Inheritance and Polymorphism
Objective 3.2 · Create and use subclasses and superclasses, including abstract classes, method overriding, and the Object class.
Interfaces and Lambda Expressions
Objective 3.3 · Create and use interfaces, including default and static methods, and use functional interfaces and lambda expressions.
Exceptions and Assertions
Objective 4.1 · Use try-catch-throw and multi-catch clauses, including try-with-resources and assertions.
Arrays, Collections, and Generics
Objective 5.1 · Use arrays, lists, sets, maps, and stacks, including generic types and utility methods (e.g., Collections, Arrays).
Streams and Lambda Pipelines
Objective 6.1 · Use streams to process collections and arrays, including filtering, mapping, reducing, and collecting operations.
Java I/O and NIO File Handling
Objective 7.1 · Read and write data using I/O streams (FileInputStream, FileOutputStream, BufferedReader, etc.) and use NIO.2 Path, Files, and DirectoryStream.
Functional Programming with Optional and Streams
Objective 6.2 · Use Optional, functional interfaces (Consumer, Supplier, Predicate, Function), and method references.
Date, Time, and Localization
Objective 8.1 · Use LocalDate, LocalTime, LocalDateTime, Instant, Period, Duration, and apply locale-specific formatting.
Concurrency and Threads
Objective 9.1 · Create and manage threads using Runnable, Callable, ExecutorService, and use synchronization and concurrent collections.
JDBC Database Access
Objective 10.1 · Use JDBC to connect to a database, execute queries (Statement, PreparedStatement, CallableStatement), and process results (ResultSet).
Annotations and Reflection
Objective 11.1 · Define and use annotations, including built-in annotations, and use reflection to inspect classes, methods, and fields.
Modules and Modular Applications
Objective 12.1 · Describe the modular JDK, create and export modules, use module declarations, and understand module dependencies.
Security and Best Practices
Objective 13.1 · Apply secure coding practices (encapsulation, immutability, input validation) and avoid common vulnerabilities.
Free 1Z0-829 practice questions with full explanations. Test what you learn chapter by chapter.
1Z0-829 Practice Questions