Java SE 17 (1Z0-829) study materials
Java SE 17 (1Z0-829) study resources

Java SE 17 (1Z0-829) study plan

Java SE 17 (1Z0-829) · Give each week a clear focus.

8 weeks · About 7 hours per week

Week 1

Handling date, time, text, numeric and boolean values

  • Write and run code that converts between LocalDate, LocalDateTime, ZonedDateTime and Instant, printing results after each conversion to confirm the mapping.

  • Construct dates with LocalDate.of and adjust them with plusDays, minusMonths and with(TemporalAdjusters.nextOrSame(...)), predicting each output before running it.

  • Compare two ZonedDateTime values around a DST spring-forward gap and a fall-back overlap, and explain in writing why one instant may be skipped or repeated.

  • Format and parse the same LocalDateTime with DateTimeFormatter.ofPattern using both a custom pattern and FormatStyle.MEDIUM, noting which throws on bad input.

Your checkpoint

A single runnable Java file plus a one-page notes sheet listing every date/time type, its time-zone awareness, and one line of code that creates it.

Week 2

Handling date, time, text, numeric and boolean values

  • Build and manipulate Period and Duration objects, then add each to a LocalDate and a LocalTime to show which combinations compile and which do not.

  • Use Duration.between and Period.between on the same pair of values and explain the difference in the results.

  • Write code that formats numbers with NumberFormat and DecimalFormat, including a locale-sensitive currency example, and record the exact output strings.

  • Parse a decimal string with Integer.parseInt and Double.parseDouble, then trigger and catch NumberFormatException to see the exception message.

Your checkpoint

A passing mini test class (plain main method with assertions) covering at least 15 date/time and number-formatting cases, with expected values written as comments.

Week 3

Utilizing collections and streams

  • Create List, Set, Map and Deque instances using factory methods and the correct implementation class for each use case, justifying the choice in a comment.

  • Add, remove and iterate over elements of a HashMap and a TreeMap, and demonstrate what happens when a null key is inserted into each.

  • Override equals and hashCode on a small record or class, then show that a HashSet rejects a duplicate and that a TreeSet throws when no ordering exists.

  • Use Comparator.comparing and thenComparing to sort a list of objects by two fields, including a reversed secondary sort.

Your checkpoint

A comparison table of List, Set, Map and Queue implementations (ordering, duplicates, nulls allowed) backed by a runnable class that proves each row.

Week 4

Utilizing collections and streams & Using object-oriented concepts and functional interfaces

  • Build a stream pipeline that filters, maps, sorts and collects into a List, then rewrite the same pipeline using collect(Collectors.groupingBy(...)).

  • Use Optional with map, flatMap, orElse and orElseThrow, and handle an empty Optional without calling get().

  • Write a lambda for a custom functional interface and replace it with a method reference where the signature allows.

  • Chain stream operations lazily and prove with print statements that intermediate operations run only when the terminal operation executes.

Your checkpoint

A stream-processing class that reads a hardcoded list of records and produces grouped, sorted summary output, plus a written trace showing the order in which pipeline stages execute.

Week 5

Controlling program flow

  • Write if/else and switch statements over int, String and enum values, then convert each switch to the arrow form and confirm identical behavior.

  • Use a switch expression with yield and a multi-label case, and demonstrate that a non-exhaustive switch expression over an enum fails to compile.

  • Construct nested for, while and do/while loops that use labeled break and labeled continue, and trace the iteration counts by hand before running.

  • Predict the output of a loop that modifies a loop variable inside the body and one that uses a for-each over a list being structurally modified, then verify what actually happens.

Your checkpoint

A set of 10 code snippets with hand-written predicted output, each verified by running, with a note on every snippet where the prediction was wrong.

Week 6

Handling exceptions and using local variable type inference

  • Write try/catch/finally blocks where finally returns a value or throws, and record which result actually wins.

  • Create a custom checked exception and a custom unchecked exception, then declare, throw and catch each in a method chain that demonstrates propagation.

  • Use try-with-resources with two AutoCloseable resources and confirm the close order and suppressed-exception behavior.

  • Apply var to local variables, for-loop variables and try-with-resources, and list the declarations where var is illegal (fields, method parameters, null initializer, lambda parameters without types).

Your checkpoint

An exception-handling demo class with at least 8 scenarios, each printing the caught exception type and message, accompanied by a short written explanation of close order and suppressed exceptions.

Week 7

Using object-oriented concepts and functional interfaces

  • Design an abstract class and an interface hierarchy, then implement both in one concrete class and resolve a default-method conflict explicitly.

  • Demonstrate polymorphism through an overridden method called via a supertype reference, and show the difference between field hiding and method overriding.

  • Create a sealed interface with permitted subclasses (final, non-sealed, sealed) and verify that an unlisted implementer fails to compile.

  • Implement a functional interface with a lambda, a method reference and an anonymous class, then explain when each form is required.

Your checkpoint

A small object model (at least 5 types using abstract class, interface, sealed hierarchy and records) with a driver class that exercises every relationship, plus a diagram of the type hierarchy.

Week 8

Handling date, time, text, numeric and boolean values & Utilizing collections and streams & Controlling program flow & Handling exceptions and using local variable type inference & Using object-oriented concepts and functional interfaces

  • Take two full-length timed practice exams under exam conditions and log every missed question against its domain.

  • Re-implement from scratch the five code patterns missed most often (date formatting, stream grouping, switch expression, try-with-resources, sealed types) without consulting notes.

  • Review the domain weighting and schedule extra drilling for whichever domain scored below 70 percent on the practice runs.

  • Re-read the notes sheets from weeks 1 through 7 and rewrite each into a single condensed cheat sheet of no more than two pages.

Your checkpoint

A scored practice-exam log with per-domain accuracy, plus a two-page cheat sheet that covers every domain and the specific mistakes found in the practice runs.

Milestones

Week 2: Can create, convert, format and parse LocalDate, LocalDateTime, ZonedDateTime, Instant, Period and Duration from memory, and correctly answers 15 date/time and number-formatting questions in a row.

Week 4: Can write a filter-map-collect pipeline and a groupingBy collector without reference material, and explain lazy evaluation and Optional handling aloud in under five minutes.

Week 6: Can predict the output of try/catch/finally and try-with-resources snippets, including suppressed exceptions, with at least 90 percent accuracy across 10 snippets.

Week 8: Scores at least 75 percent overall on two timed practice exams with no domain below 65 percent, and has a completed per-domain error log and two-page cheat sheet.