Why Study with PlanetCert?
The Latest Questions
Practice questions and exam topics aligned with the current exam objectives.
Detailed Explanations
Go beyond the answer. Master the material with comprehensive learning and professional explanations for every concept.

AI-Powered Insights
Personalized preparation guidance that adapts to your performance and identifies weak spots automatically.
Exam Information
Official specifications published by Oracle
Exam Format
Registration
Validity
Skills this practice test covers
- Predict the result of code that mixes wrapper classes, type promotion, text blocks and StringBuilder.
- Model data with records, sealed classes, enums and interfaces that have default and private methods.
- Filter, map, group and partition data with streams, lambdas and functional interfaces.
- Run tasks with Executor services and protect shared data with locks and concurrent collections.
- Package modules with services, then build modular JARs and a runtime image with jlink.
- Handle exceptions with try-with-resources, multi-catch blocks and custom exception classes.
Explore related topics
1Z0-829 exam content
11 domains · 22 topics · 221 of 906 questions are written for 1Z0-829
Handling date, time, text, numeric and boolean values20 questions
This domain covers the basic values every program works with. Candidates evaluate expressions with primitives and wrapper classes, build text with String, StringBuilder and text blocks, and handle dates, times, durations, periods, instants and time zones with the Date-Time API.
Skills tested
- Evaluate arithmetic and boolean expressions with type promotion, casting and parentheses.
- Use the Math API and wrapper classes, including autoboxing and unboxing.
- Build and change text with String and StringBuilder, and write multi-line text blocks.
- Calculate with Duration, Period and Instant, and convert a time between time zones.
Questions by topic
- Manipulate date, time, duration, period, instant and time-zone objects using Date-Time API10
- Manipulate text, including text blocks, using String and StringBuilder classes10
Controlling Program Flow10 questions
This domain is about the order in which statements run. Candidates write if/else blocks, switch statements and switch expressions, and loops with break and continue, then predict where each one sends control.
Skills tested
- Write switch expressions with arrow labels and yield, and tell them apart from switch statements.
- Predict how many times a loop runs when it uses break, continue or a label.
- Choose between for, enhanced for, while and do-while loops for a task.
Questions by topic
- Create program flow control constructs including if/else, switch statements and expressions, loops, and break and continue statements10
Utilizing Java Object-Oriented Approach66 questions
The domain with the most practice questions covers how Java models objects. Candidates create classes and records, overload and override methods, apply encapsulation and immutability, build inheritance with abstract and sealed classes, and use interfaces and enums.
Skills tested
- Explain an object's life cycle, from creation and reassigned references to garbage collection.
- Declare records and add a compact constructor or extra methods to them.
- Seal a class hierarchy with permits, and mark each subclass final, sealed or non-sealed.
- Use pattern matching with instanceof, and tell the object type from the reference type.
- Write interfaces with default, static and private methods, and enums with fields and constructors.
Questions by topic
- Java Inheritance18
- Create classes and records, and define and use instance and static fields and methods, constructors, and instance and static initializers11
- Implement polymorphism and differentiate object type versus reference type. Perform type casting, identify object types using instanceof operator and pattern matching9
- Understand variable scopes, use local variable type inference, apply encapsulation, and make objects immutable10
- Use generics, including wildcards9
- Implement overloading, including var-arg methods9
Handling Exceptions10 questions
This domain checks how code reacts when something fails. Candidates handle exceptions with try/catch/finally, try-with-resources and multi-catch blocks, and write their own exception classes.
Skills tested
- Order catch blocks correctly and explain why a broader exception type cannot come first.
- Close resources with try-with-resources and predict the order in which they close.
- Create custom checked and unchecked exceptions, and decide which one a method should declare.
Questions by topic
- Handle exceptions using try/catch/finally, try-with-resources, and multi-catch blocks, including custom exceptions10
Working with Arrays and Collections11 questions
This domain covers storing groups of values. Candidates create arrays and List, Set, Map and Deque collections, and must know how each one adds, removes, finds and sorts its elements.
Skills tested
- Pick between ArrayList, HashSet, HashMap and ArrayDeque for a task.
- Sort elements with Comparable and Comparator, and search a sorted array.
- Use a Deque as a queue or as a stack.
Questions by topic
- Create Java arrays, List, Set, Map, and Deque collections, and add, remove, update, retrieve and sort their elements11
Working with Streams and Lambda expressions18 questions
This domain is about processing data in pipelines. Candidates use lambda expressions with object and primitive streams to filter, map and sort data, then reduce, group or partition the results on sequential and parallel streams.
Skills tested
- Write lambda expressions and method references for built-in functional interfaces such as Predicate and Function.
- Chain intermediate and terminal operations, and know when a stream actually runs.
- Group and partition results with collectors, and combine streams with concat and flatMap.
Questions by topic
- Use Java object and primitive Streams, including lambda expressions implementing functional interfaces, to supply, filter, map, consume, and sort data9
- Perform decomposition, concatenation and reduction, and grouping and partitioning on sequential and parallel streams9
Packaging and deploying Java code and use the Java Platform Module System18 questions
This domain covers how Java code is split into modules and shipped. Candidates declare modules and their dependencies, open packages for reflection, define services with providers and consumers, and produce modular and non-modular JARs and runtime images.
Skills tested
- Write module-info.java files with requires, exports, opens, provides and uses directives.
- Migrate an application with unnamed and automatic modules.
- Create a custom runtime image with jlink.
Questions by topic
- Define modules and their dependencies, expose module content including for reflection. Define services, producers, and consumers9
- Compile Java code, produce modular and non-modular jars, runtime images, and implement migration using unnamed and automatic modules9
Managing concurrent code execution20 questions
This domain covers running work on several threads at once. Candidates create worker threads with Runnable and Callable, manage them with Executor services, write thread-safe code with locks and the concurrent API, and process collections in parallel.
Skills tested
- Submit Runnable and Callable tasks to an ExecutorService and read their results from a Future.
- Protect shared data with synchronized blocks, locks or atomic variables.
- Choose concurrent collections such as ConcurrentHashMap and CopyOnWriteArrayList.
- Explain when a parallel stream can give a different result from a sequential one.
Questions by topic
- Develop thread-safe code, using different locking mechanisms and concurrent API9
- Create worker threads using Runnable and Callable, manage the thread lifecycle, including automations provided by different Executor services and concurrent API11
Using Java I/O API29 questions
This domain covers reading and writing data. Candidates use I/O streams for console and file data, serialize and deserialize objects, and create, traverse, read and write Path objects with the java.nio.file API.
Skills tested
- Read and write files with buffered readers and writers, and read input through the Console class.
- Serialize an object and explain which fields are skipped, such as transient ones.
- Walk a directory tree, and copy, move or delete files with the Files class.
Questions by topic
- Serialize and de-serialize Java objects10
- Create, traverse, read, and write Path objects and their properties using java.nio.file API10
- Read and write console and file data using I/O Streams9
Accessing databases using JDBC9 questions
This domain covers talking to a relational database from Java. Candidates open connections, run basic, prepared and callable statements, read query results and control transactions with the JDBC API.
Skills tested
- Get a Connection from DriverManager with a JDBC URL.
- Run queries with PreparedStatement and read rows from a ResultSet.
- Turn off auto-commit and use commit and rollback to control a transaction.
Questions by topic
- Create connections, create and execute basic, prepared and callable statements, process query results and control transactions using JDBC API9
Implementing Localization10 questions
This domain covers adapting a program to a language and region. Candidates use locales and resource bundles, and parse and format messages, dates, times and numbers, including currency and percentage values.
Skills tested
- Create Locale objects and load the right resource bundle, including its fallback.
- Format numbers, currency and percentages for a given locale.
- Format dates and times with DateTimeFormatter, and messages with MessageFormat.
Questions by topic
- Implement localization using locales, resource bundles, parse and format messages, dates, times, and numbers including currency and percentage values10
Requirements
- No formal prerequisites: anyone can book the exam.
- Recommended: hands-on Java programming experience and a sound grasp of object-oriented design.
- Recommended: practice with the language features added up to Java SE 17, such as records, sealed classes and text blocks.
About the 1Z0-829 exam
Oracle's 1Z0-829 exam measures whether a developer can read and write Java SE 17 code precisely, down to what compiles and what a program prints. Its eleven domains run from primitives, text and the Date-Time API through object-oriented design, streams, modules, concurrency, I/O, JDBC and localization. Oracle also expects the basics of the Java Logging API, common annotations and generics with wildcards. Passing earns Oracle Certified Professional: Java SE 17 Developer.
Utilizing Java Object-Oriented Approach has the most questions in the PlanetCert practice test, and inheritance, classes and records are its most common topics. Each explanation names the rule that makes a snippet compile, fail or print a given result, such as why a sealed class rejects a subclass it does not permit. Study Mode suits the streams and concurrency domains, where each step of a pipeline or a lock needs a slow read. Brainy AI Assistant can explain a confusing compiler error or rewrite a lambda as a method reference.
How to earn the certification
- Earns
- Oracle Certified Professional: Java SE 17 DeveloperProfessional
The certification has no expiry date; it stays tied to Java SE 17.
How to prepare for 1Z0-829
- 1
Compile by hand with a Java 17 JDK
Write small programs and build them with javac and java on the command line instead of an IDE. Many questions ask whether code compiles, and an IDE flags those errors before they can be studied.
- 2
Guess the output before running code
For each objective, write a short snippet, predict its output or compile error, then run it. The habit pays most in the object-oriented domain, with records, sealed classes, overloading and casting.
- 3
Write streams that group and partition
Use Collectors.groupingBy and partitioningBy, flatMap, reduce and parallel streams on small lists. Oracle's stream objectives name decomposition, concatenation, reduction, grouping and partitioning.
- 4
Build a modular JAR and runtime image
Create a module with requires and exports, add a service with a provider and a consumer, and package it as a modular JAR. Then build a runtime image with jlink and try an automatic module.
- 5
Mix domains in Timed Mode at the end
Use Study Mode on one domain at a time first, then run the 1Z0-829 practice test in Timed Mode. Ask Brainy AI Assistant to walk through any code question whose result came as a surprise.
Start a timed 1Z0-829run
Oracle's exam page recommends the Java SE 17 Developer learning path on Oracle MyLearn as optional training, together with hands-on practice.
Who 1Z0-829 is for
- Developers who write Java SE 17 code at work and want Oracle's professional title for it.
- Developers moving code from older Java versions who must learn records, sealed classes and switch expressions.
- Back-end engineers who build services with Java frameworks on a Java 17 runtime.
- IT staff whose employer asks for an Oracle Java certification.
Typical job titles: Java developer · Software engineer · Back-end developer · Application developer · Full-stack developer
1Z0-829 glossary
17 terms from the exam objectives and the vendor's official material, each defined in a sentence.
- Automatic modules
- Plain JAR files placed on the module path, which Java treats as modules that export all their packages.
- Callable
- A task interface like Runnable, except that its call method returns a result and may throw a checked exception.
- Date-Time API
- The java.time classes, such as LocalDate, Duration and ZonedDateTime, for working with dates, times and time zones.
- Deque
- A double-ended queue: a collection that adds and removes elements at both ends, so it can act as a queue or a stack.
- ExecutorService
- A java.util.concurrent interface that runs submitted tasks on managed threads, so code does not create and manage threads by hand.
- Functional interfaces
- Interfaces with exactly one abstract method, which a lambda expression or a method reference can implement.
- jlink
- The JDK tool that builds a custom runtime image holding only the modules an application needs.
- Local variable type inference
- Declaring a local variable with var, so the compiler works out its type from the value assigned to it.
- Pattern matching
- Testing an object's type and binding it to a new variable in one step, as in obj instanceof String s.
- PreparedStatement
- A JDBC statement compiled once with ? placeholders, which takes its parameter values safely at run time.
- Records
- Classes declared with the record keyword to hold fixed data; Java writes their constructor, accessors, equals, hashCode and toString.
- Resource bundles
- Sets of locale-specific files or classes from which a program loads translated text at run time.
- Sealed classes
- Classes that name, with permits, the only classes allowed to extend them.
- Serialization
- Turning an object into a stream of bytes that can be saved or sent, and rebuilding the object from those bytes later.
- StringBuilder
- A changeable sequence of characters, used to build text without creating a new String for every change.
- Text blocks
- String literals that span several lines, written between three double quotes at each end.
- try-with-resources
- A try statement that declares resources and closes them automatically, in reverse order, when the block ends.