Java OCP 17 Developer Complete Study Guide

Jeanne Boyarsky and Scott Selikoff developed a complete study guides for all of the new Oracle Certified Professional (OCP), Java SE 17 Programmer 1Z0-829 exam. The book OCP Oracle Certified Professional Java SE 17 Developer Complete Study Guide is published by Wiley Publishing.

We are using this blog to publish information about the book such as objectives changes and any errata found within the book. To report an error in the book that is not yet listed here, please create a thread in the OCP forum and include “Sybex CSG 17” or “Sybex 829” in the subject.

If you have any questions for us, feel free to post in the OCP forum at CodeRanch which Jeanne and Scott visit frequently.

Key Links

Where to buy it


  • 1Z0-829 – 90 minutes, 50 questions, 68% passing, $245

All known errors are listed here. To report a potential error, please create a thread at Be sure to include “Sybex CSG 17” or “Sybex 829” and the chapter and/or page number in the subject.


xxiiiIntro“home in on” should be “hone in on”Guillaume Bailly8/22/22
lviiIntro#30 – || should be |Alessandro Putzu8/22/22
lxIntroIn the explanation for #14, “Line 10 includes” should be “Line 11 includes”Guillaume Bailly8/22/22
1113In figure 3.3, the colon is missing after the second caseCaleb Josue Ruiz Torres3/4/23
1163In figure 3.4, there should be a semicolon at the endCaleb Josue Ruiz Torres3/4/23
1674At the bottom of the page, the three dots should be after the type, not after the variable nameRik Vo6/3/23
1834“referring to that tenth element” should be “referring to that tenth index”Guillaume Bailly9/10/22
1944US/Eastern should be -4:00 with an a GMT of 11:50Dan Buege6/16/23
1974The third code block is missing a semicolon. “//DateTimeException” should be “; //DateTimeException”Vlad Alin4/30/22
2054In the last example on the page, “202” should be “2022”Wayne Rijsdjik8/22/22
2515At the end of the page “We ran rewrite” should be “We can rewrite”Manuel Trumm 3/4/23
2826“one top-level class” should be “one public top-level class” both times it appearIlenia Salvadori7/4/22
3577The Skip class should implement HopCaleb Josue Ruiz Torres4/26/24
3647Below the switch statement, Season.FALL should be Season.WINTER and FALL should be WINTERTymo Miller10/9/22
3797The first sentence of the note should say “You might think that you need custom checks for every field in the record, like for numberEggs”Koen Weterings12/3/23
3847“were a method on the room variable” should be “were a method on the home variable”Guillaume Bally10/9/22
3967In the last paragraph “Wolf interface” should be “Wolf class”Gabi Maxim5/30/22
4107#14 – “non-sealed” was supposed to be the wrong answer “nonsealed” in option D. If you chose option D as correct give yourself credit.Favio Tejada6/29/22
789Set cannot take duplicates so ‘z’, ‘o’, ‘o’ is invalidIra Go5/29/24
4839“It is not true that you can pass “any number of pairs” should be “up to 10 pairs”João Lopes3/4/23
4859In Table 9.6, forEach() and merge() have parens instead of <> around the genericsTaiwo Ajayi6/29/22
4859merge() takes a BiFunction, not a FunctionMike Gualeni8/22/22
4919“null values” should be null values for set or null keys for mapGuillaume Bailly11/27/22
4919In the real world scenario, “Queue” should be “List”Mourid Smida11/22/22
5249#7 – Option B should say List instead of ArrayListEarl Savadara5/30/22
various10The Stream class is an interfaceMikalai Zaikin6/3/23
58010In exam essentials, “The groupingBy() method is a terminal operation” should be “The groupingBy() method is used in a terminal operation”Marco Olivi7/16/22
62411“NumberFormat is an interface” should be “NumberFormat is an abstract class”Guillaume Bailly
62711In table 11.6, “S” should be “s” in the symbol column of the tableRadu Pana5/8/22
62711In the code example, the second to last line should have “hh:mm:z” instead of “h:mm z”Guillaume Bailly11/27/22
68912In table 12.8, jdk. accessibility has a missing “i”Crystal Kirsct5/12/24
70412“do not export any packages to named or automatic modules” should be “do not export any packages to named modules”Hans-Joachim Bleichenbacher7/4/22
71112“export to a specific package” should be “export to a specific module”Manuel Thrumm3/4/23
79314The line for toAbsolutePath() should be in table 14.3, not 14.4Fabrizio Bisi7/26/22
79614p.getName() should be p.getFileName() in the first exampleJustinas Seskus3/4/23
79814The method at the bottom of the page should be “move” not “copy”Guillaume Bailly12/4/22
80714A user on Windows reported the list method does follow symlinksUdo Albinger12/28/22
82314The line with while is missing a {Konstantin Müller6/3/23
83914“void” is missing in the mark() line of table 14.11Konstantin Müller6/3/23
84714In table 14.13, the end of the table is incorrectDaniel Odrinski12/17/23
85714#15 – in option F, “winer” should be “winter”Fabrizio Bisi7/26/22Already fixed
85914#20 – The question mixes move and copyAlbert Attard9/17/22
88915In the second sentence of “Passing an IN Parameter”, “of the stored procedure” should be “of the name column”Michael Goshey12/3/23
90115#6 – There should be single quotes around JengaGuillaume Bailly12/4/22
9152#13 – Remove “since the operator … is the same” for & and ^Peter Prazenica3/4/23
9173#8 – “if s is not a Long” should be “if o is not a Long”Crystal Kirscht2/18/24
9203#22 – pre-increment operator (–) should be pre-decrement operator (–) Albert Attard7/24/22
9368#2 – String should be StringBuilder in the explanationJoão Lopes3/4/22
9409#7- B is not correct. The answer should only be F. (The parameter type doesn’t match in B)Guillaume Bailly11/27/22
9409#10 Note that F returns Collection which also allows calling forEach()Albert Attard8/30/22
94912#3 Ignore everything about option D in the explanationFederica Sacca6/3/23
95213#10 – “CopyOnWriteArrrayList” should be “CopyOnWriteArrayList”Albert Attard9/17/22
95714#17. The answer is correct but in the explanation “D is correct” should be “D is incorrect”Radek Novotný7/4/22Already fixed
95915#6 Give yourself credit if you put option D as the JavaDoc says an exception is thrown in autocommit mode. (this is out of scope though)Matthias van der Hallen12/24/22
online only4#14 is A and F. This is correct in the book, but not onlineVarban Bonev6/3/23Already fixed
online only4#19 – Arrrays as an extra rGuillaume Bailly6/3/23Already fixed
Flashcards Set 2The one about “removeIf” should have both List and Set as an answer.Patrick Kessels5/30/22
Flashcards Set 2The one about get() should be Supplier, not ConsumerRadek Novotný7/4/22
Flashcards Set 1“–classpath, and -class-path” should be “-classpath, and –class-path”Radek Novotný7/4/22
Flashcards Set 1 & 2The questions about casting from int/double should say “numeric types”Bernice Tjonadi1/2/24
Flashcards Set 2SavePoint should be SavepointBernice Tjonadi1/2/24
Practice Exam #1#7“isEmpty” should be “toString”Guillaume Bailly12/31/22
Practice Exam #3#15If you answered B/E/F, give yourself credit. It is a valid answer along with A/E/F.Radek Novotný7/4/22