Free Oracle 1Z0-829 Exam Actual Questions & Explanations

Last updated on: Jul 25, 2026
Author: Tyler Bianchi (Oracle Certified Associate Java Programmer & Exam Content Strategist)

The Oracle 1Z0-829 exam validates your ability to develop applications using Java SE 17, the latest long-term support release. This certification is designed for developers who want to demonstrate proficiency in core Java programming concepts and real-world application development. Whether you're advancing your career or solidifying your Java fundamentals, this page provides a structured study roadmap to help you prepare efficiently. The exam covers essential topics from basic data handling through advanced features like streams, modules, and concurrent programming. Use this guide to understand the syllabus, identify weak areas, and build confidence before test day.

1Z0-829 Exam Syllabus & Core Topics

Use this topic map to guide your study for Oracle 1Z0-829 (Java SE 17 Developer) within the Oracle Java path.

  • Handling Date, Time, Text, Numeric and Boolean Values: Work with the java.time API to parse and format dates; manipulate strings using immutable String and StringBuilder classes; perform numeric operations and understand primitive wrapper classes.
  • Controlling Program Flow: Master conditional statements (if/else, switch), loops (for, while, do-while), and branching keywords (break, continue, return) to direct execution logic.
  • Utilizing Java Object-Oriented Approach: Design and implement classes, interfaces, and inheritance hierarchies; apply encapsulation, polymorphism, and composition to create maintainable code structures.
  • Handling Exceptions: Distinguish between checked and unchecked exceptions; use try-catch-finally blocks and custom exception classes to manage error conditions gracefully.
  • Working with Arrays and Collections: Create and manipulate arrays; use List, Set, and Map implementations; apply sorting and searching techniques for efficient data organization.
  • Working with Streams and Lambda Expressions: Process collections functionally using the Stream API; write concise lambda expressions; apply intermediate and terminal operations for data transformation and aggregation.
  • Packaging and Deploying Java Code and Using the Java Platform Module System: Organize code into packages; understand the module system (JPMS) for encapsulation and dependency management; create and configure module descriptors.
  • Managing Concurrent Code Execution: Create and manage threads; use synchronization, locks, and concurrent collections; understand thread lifecycle and coordination mechanisms.
  • Using Java I/O API: Read and write files using byte and character streams; handle file operations with NIO.2; manage resource lifecycle with try-with-resources.
  • Accessing Databases Using JDBC: Connect to databases; execute SQL queries and updates; manage ResultSet objects and prepared statements for secure, efficient data access.
  • Implementing Localization: Use ResourceBundle and Locale classes to support multiple languages and regional formats; apply internationalization best practices.

Question Formats & What They Test

The 1Z0-829 exam uses multiple question types to assess both conceptual understanding and practical problem-solving ability. Questions progress in difficulty and require you to apply knowledge to realistic scenarios.

  • Multiple Choice: Test recall of Java syntax, API behavior, and core terminology; require you to identify correct method signatures, exception types, and feature usage.
  • Scenario-Based Items: Present code snippets or real-world situations; ask you to predict output, identify bugs, or choose the best design approach for maintainability and performance.
  • Drag-and-Drop/Matching: Connect concepts to examples, such as matching exception types to error conditions or pairing stream operations to their effects.
  • Code Completion: Require you to fill in missing lines or choose correct statements to complete a working program segment.

Questions emphasize hands-on reasoning: you must not only know what features exist, but understand when and how to use them in production code.

Preparation Guidance

An effective study plan distributes topics across 4-6 weeks, with daily practice and progressive complexity. Start with foundational topics like data types and control flow, then move to object-oriented design and advanced features. Regular review and timed practice are essential to build both accuracy and speed.

  • Allocate weekly focus areas: Week 1-2 on data handling, control flow, and OOP fundamentals; Week 3 on exceptions and collections; Week 4 on streams and lambda; Week 5 on modules, concurrency, and I/O; Week 6 on JDBC and localization.
  • Work through topic-mapped question sets; review detailed explanations to understand not just the correct answer, but why alternatives fail.
  • Write code for every major topic: create sample classes, test exception handling, build stream pipelines, and practice file I/O to reinforce muscle memory.
  • Link concepts across workflows: understand how collections feed into streams, how exceptions propagate through concurrent code, and how modules organize large projects.
  • Take a full-length timed practice test in the final week to simulate exam conditions, identify remaining gaps, and refine your pacing strategy.

Explore other Oracle certifications: view all Oracle exams.

Get the PDF & Practice Test

Strengthen your preparation with up-to-date resources from validexamdumps.com. These materials align to 1Z0-829 and cover practical scenarios with clear explanations.

  • Q&A PDF with Explanations: Topic-mapped questions that clarify why correct options are right and others aren't; includes code analysis and output prediction items.
  • Practice Test: Realistic exam-style items, timed and untimed modes, progress tracking, and detailed review feedback for every question.
  • Focused Coverage: Aligned to handling date/time/text/numeric/boolean values, controlling program flow, object-oriented design, exception handling, arrays and collections, streams and lambda expressions, modules and packaging, concurrent execution, I/O operations, JDBC database access, and localization so you study what matters most.
  • Regular Updates: Content refreshes that reflect syllabus changes and reflect real exam patterns.

Visit the exam page to download the PDF, Online Practice Test, or get a Bundle Discount for both formats: Java SE 17 Developer.

Frequently Asked Questions

What topics carry the most weight on the 1Z0-829 exam?

Object-oriented programming, exception handling, and collections/streams typically account for a larger portion of the exam. However, all 11 topics are tested, so balanced preparation is important. Focus extra effort on areas where you struggle, but don't neglect modules, concurrency, and JDBC, these appear regularly and are often underestimated.

How do streams and lambda expressions connect to real project work?

Streams and lambdas are central to modern Java development: they enable concise, readable data processing and reduce boilerplate code. On the exam, you'll encounter questions about filtering collections, transforming data, and aggregating results. In practice, these skills are essential for handling large datasets efficiently and writing maintainable functional-style code.

How much hands-on coding experience helps, and which labs should I prioritize?

Hands-on practice is critical; reading alone is insufficient. Prioritize labs that involve writing complete programs: build a multi-class application with inheritance and interfaces, create custom exceptions, write file I/O code, and build a simple JDBC application. These reinforce syntax memory and build confidence in debugging and problem-solving.

What are common mistakes that cost points on 1Z0-829?

Frequent errors include confusing checked vs. unchecked exceptions, misunderstanding stream terminal operations, overlooking thread safety in concurrent code, and misapplying lambda syntax. Many candidates also rush through code analysis questions without tracing execution carefully. Slow down, read code line-by-line, and verify your answer before moving on.

What is an effective final-week review and pacing strategy?

In your final week, take one full-length timed practice test to identify remaining weak spots, then drill those topics intensively. During the actual exam, allocate 1-1.5 minutes per question; skip difficult items and return to them if time permits. Review your answers only if you finish early, and trust your preparation, second-guessing often leads to errors.

Question No. 1

Given:

What is the result?

Show Answer Hide Answer
Correct Answer: B

The answer is B because the code uses thewriteObjectandreadObjectmethods of theObjectOutputStreamandObjectInputStreamclasses to serialize and deserialize theGameobject. These methods use the default serialization mechanism, which writes and reads the state of the object's fields, including the inherited ones. Therefore, thetitlefield of theSoftwareclass is also serialized and deserialized along with theplayersfield of theGameclass. ThetoStringmethod of theGameclass calls thetoStringmethod of theSoftwareclass usingsuper.toString(), which returns the value of thetitlefield. Hence, when the deserialized object is printed, it shows ''Software Game Software Game Chess 2''.Reference:

Oracle Certified Professional: Java SE 17 Developer

Java SE 17 Developer

OCP Oracle Certified Professional Java SE 17 Developer Study Guide

Serialization and Deserialization in Java with Example


Question No. 2

Given the code fragment:

What is the result?

Show Answer Hide Answer
Correct Answer: C

The code fragment is creating a string variable ''a'' with the value ''Hello! Java''. Then, it is printing the index of ''Java'' in ''a''. Next, it is replacing ''Hello!'' with ''Welcome!'' in ''a''. Then, it is printing the index of ''Java'' in ''a''. Finally, it is creating a new StringBuilder object ''b'' with the value of ''a'' and printing the index of ''Java'' in ''b''. The output will be 8109 because the index of ''Java'' in ''a'' is 8, the index of ''Java'' in ''a'' after replacing ''Hello!'' with ''Welcome!'' is 10, and the index of ''Java'' in ''b'' is 9.Reference:Oracle Java SE 17 Developer source and documents: [String (Java SE 17 & JDK 17)], [StringBuilder (Java SE 17 & JDK 17)]


Question No. 3

Given:

Which two should the module-info file include for it to represent the service provider interface?

Show Answer Hide Answer
Correct Answer: B, E

The answer is B and E because the module-info file should include a provides directive and an exports directive to represent the service provider interface. The provides directive declares that the module provides an implementation of a service interface, which is com.transport.vehicle.cars.Car in this case. The with clause specifies the fully qualified name of the service provider class, which is com.transport.vehicle.cars.impl.CarImpl in this case. The exports directive declares that the module exports a package, which is com.transport.vehicle.cars in this case, to make it available to other modules. The package contains the service interface that other modules can use.

Option A is incorrect because requires is not the correct keyword to declare a service provider interface. Requires declares that the module depends on another module, which is not the case here.

Option C is incorrect because it has a typo in the module name. It should be com.transport.vehicle.cars, not cm.transport.vehicle.cars.

Option D is incorrect because it has a typo in the keyword provides. It should be provides, not Provides. It also has a typo in the service interface name. It should be com.transport.vehicle.cars.Car, not com.transport.vehicle.cars.Car impl. It also has an unnecessary to clause, which is used to limit the accessibility of an exported package to specific modules.

Option F is incorrect because it exports the wrong package. It should export com.transport.vehicle.cars, not com.transport.vehicle.cars.impl. The impl package contains the service provider class, which should not be exposed to other modules.

Option G is incorrect because it exports the wrong package. It should export com.transport.vehicle.cars, not com.transport.vehicle. The vehicle package does not contain the service interface or the service provider class.Reference:

Oracle Certified Professional: Java SE 17 Developer

Java SE 17 Developer

OCP Oracle Certified Professional Java SE 17 Developer Study Guide

Java Modules - Service Interface Module - GeeksforGeeks

Java Service Provider Interface | Baeldung


Question No. 4

Given:

What is the result?

Show Answer Hide Answer
Correct Answer: C

The answer is C because the code demonstrates the concept of method overloading and type conversion in Java. Method overloading allows different methods to have the same name but different parameters. Type conversion allows values of one data type to be assigned to another data type, either automatically or explicitly. In the code, the class Test has four methods named sum, each with different parameter types: int, float, and double. The main method creates an instance of Test and calls the sum method with different arguments. The compiler will choose the most specific method that matches the arguments, based on the following rules:

If there is an exact match between the argument types and the parameter types, that method is chosen.

If there is no exact match, but there is a method with compatible parameter types, that method is chosen. Compatible types are those that can be converted from one to another automatically, such as int to long or float to double.

If there is more than one method with compatible parameter types, the most specific method is chosen. The most specific method is the one whose parameter types are closest to the argument types in terms of size or precision.

In the code, the following method calls are made:

test.sum(10, 10.5) -> This matches the sum(int a, float b) method exactly, so it is chosen. The result is 20.5, which is converted to int and printed as 20 (B).

test.sum(10) -> This does not match any method exactly, but it matches the sum(double a) method with compatible types, as int can be converted to double automatically. The result is 10.0, which is printed as 10 (A).

test.sum(10.5, 10) -> This does not match any method exactly, but it matches two methods with compatible types: sum(float a, float b) and sum(double a, double b). The latter is more specific, as double is closer to the argument types than float. The result is 20.5, which is printed as 20 (D).

Therefore, the output is B A D.Reference:

Oracle Certified Professional: Java SE 17 Developer

Java SE 17 Developer

OCP Oracle Certified Professional Java SE 17 Developer Study Guide

Method Overloading in Java

Type conversion in Java with Examples

Java Method Overloading with automatic type conversions