Java OCP 11 Developer Complete Study Guide

Message from the Authors: Read The 1Z0-819 Exam page to learn how you can easily use this book to prepare for Oracle’s 1Z0-819 Exam, as well as the 1Z0-817 Upgrade Exam.

Jeanne Boyarsky and Scott Selikoff developed a complete study guides for all of the new Oracle Certified Professional (OCP), Java SE 11 Programmer exams, The 1Z0-819 Exam and The 1Z0-817 Upgrade Exam. The book OCP Oracle Certified Professional Java SE 11 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 11” or “Sybex 819” in the subject.

For more information, visit Oracle’s Java SE 11 Programmer I Exam, Java SE 11 Programmer II Exam, and Java SE 11 Upgrade Exam pages. 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


  • 819 – 90 minutes, 50 questions, 68% passing, $245
  • 817 upgrade – 180 minutes, 80 questions, 61%, $245

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

lxivIntro815 #14 – || should be |Alessandro Putzu8/22/22
lxxxIntro815 #11 – “it is implicitly cast” should be “it is explicitly cast”Tomasz Kasprzyk8/19/20
ixxxxivIntro816 #13 explanation -“Line 10 includes” should be “Line 9 includes”Olivia Johnson2/21/21
121String… args; should be String… args (no semicolon)Brad Phillips10/11/21
261At the top of the page, single file source code execution doesn’t prohibit other sources.Anlar Larsen5/14/22
75 (Kindle only)2In question #12, the blank is in the wrong place.David Kobrin8/30/20
702The first bullet should say “the later five” rather than “the later four”Rade Koncar10/18/20
833While most binary operators are evaluated left-to-right when they have the same operator precedence, the assignment operator is evaluated from right-to-left.Bassam Gemayel3/2/21
863The example with lion and tiger should be removed. It is incorrect. (++lion should execute before lion–)Frank Mi8/20/20
1113#20 – Option A should say “numeric binary” instead of “binary” to avoid an edge case.Samuel Silver Moos12/26/20
1484In the third paragraph, “skipping all leopards” should be “cleaning all leopards”Tomasz Kasprzyk8/19/20
n/a5#8 – online, the correct answer is ADE, not ADFSamuel Silver Moos2/14/21
2386In the second sentence, it should say that values() returns a CollectionJesse Silverman11/13/20
3799“Owls implements Nocturnal, CanFly” should be “Owls implements HasBigEyes”Michael Reeve12/26/20
42010“all inherit the same interface or extend” should be “all extend”Rade Koncar12/26/20
47611On the last line, “zoo.staff package” should be “zoo.staff module”Emmanuel Szpiega7/4/22
47811In the feature, change “As a reminder” to “If we change”Anton Fuchsberger11/13/20
48611#7 – the question should not contain “to dog”Christian Schulz7/4/20
49211#21 – It would be clearer if “n” were the module name and “c” were the fully qualified class nameRoman Bohdanov12/19/21
51512In Table 12.1, “Final” should be “final”Scott Selikoff7/3/20
53512“required when using the parameter name” should be “required when using the parameter typeRonaldo Rosa7/4/21
53812new Inner() should be new Outer().new Inner()Jesse Silverman11/13/20
54312#10 – Remove all references to the Wild interfaceOksana Cherniavskaia8/19/20
54412#11 – Remove the line numbersDaniel Fernandez Boada
54712In question 16, option D, should be “Transport”, not “Transport”Tomasz Kasprzyk10/18/20
58213Both instances of @SafeVargs should be @SafeVarargsPavel Serebriakov8/19/20
58313In the middle page “@SafeVarargs annotation to line 4” should be “@SafeVarargs annotation to line 3”Tomasz Kasprzyk10/18/20
58713In the summary, “depreciation” should be “deprecation”Karsten Thoms7/4/21
59213#13 – “optional annotation” should be “optional annotation element”Pavel Serebriakov8/19/20
62314Set.of(‘z’, ‘o’, ‘o’) should be Set.of(‘z’, ‘o’, ‘O’)Charles O’Leary9/4/20
52314“It is not true that you can pass “any number of pairs” should be “up to 10 pairs”João Lopes3/4/23
62314In the second paragraph, “This code compiles but throws an error at runtime” is incorrect because Map.of() does not take a varargs. This sentence should be “This code does not compile’Jos Roseboom9/19/20
62414The merge() method takes a BIFunction, not a FunctionVasiliy Spodin9/1/20
62414In Table 14.7, forEach() and merge() have parens instead of <> around the genericsTaiwo Ajayi6/29/22
63014In the real world scenario, “Queue” should be “List”Mourid Smida11/22/22
63114In the third paragraph “a class called Comparator” should be “an interface called Comparator”Oksana Cherniavskaia8/20/20
64114Near the middle of the page “class Duck cannot be cast” should be “class Rabbit cannot be cast”Vladimir Prud8/19/20
64414In the last line of code on the page, “SizeLimiteCrate” should be “SizeLimitedCrate”Tomasz Kasprzyk10/18/20
65714“Character is autoboxed into char” should be “Character is unboxed into char”Emmanuel Szpiega7/4/22
71515In the middle of the page “The other methods would return an empty optional” is incorrect. getMin() and getMax() return MAX_VALUE and MIN_VALUE respectively. And average returns 0.0Javid Asgarov7/3/21
72115“Collectors interface” should be “Collectors class”Amir Shah12/26/20
78816In the 2nd exam essentials “as well as a try statement with a finally block” should be removedOksana Cherniavskaia8/20/20
various17There are a few references to only having one service provider implementation in a module. This is incorrect. (However, you do not need to know how to use multiple for the exam)Vasiliy Spoden9/19/20
80417“Derivative” should be “Directive” in the Table 6.1 headerBorislav Merchev7/3/21
80917“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
81817Bullet 4 should say “next-highest level” rather than “next-lowest level”Tomasz Kasprzyk10/18/20
82017The sentence before figure 6.9 should say “the new module” not “the new module”Jos Roseboom9/19/20
82217At the bottom of the page, “models make up” should be “modules make up”Tomasz Kasprzyk10/18/20
82317In Figure 17.10, the arrow from service provider interface to service provider is the wrong way.Jeanne Boyarsky7/10/20
82317In figure 17.10 “reservation” should be “reservations”Emmanuel Szpiega7/4/22
82417In the last paragraph “provides a ServiceLocator” should be “provides a ServiceLoader”Vasiliy Spodi8/19/20
83617Options D, E, and F should say “magic.helper” instead of “magic.util”Edmond Yong and
Oksana Cherniavskaia
85018In the third paragraph, “results are guaranteed to be executed sequentially” should be “tasks are guaranteed to be executed sequentially”Matus Iglarcik12/26/20
85218In the last row of Table 18.1, remove the last sentence (about returning a Future)Brad Bouquio8/19/20
85618In the first sentence of “Submitting Task Collections”, Table 18.2 should be Table 18.1Jos Roseboom9/19/20
86518The header “Applying a ReentrantLock Interface” should be “Applying a ReentrantLock”Jos Roseboom9/19/20
87018I the table “until lock is required’ should be “unit lock is acquired”Taiwo Ajayi4/30/22
90818#20. The ExecutiveService reference should be initialized with a service value when it is created (rather than null) so that it is effectively final and can be used inside the lambda. Roy van Rijn 1/3/22
93119“void void” should be “void” in the first lineVladimir Prud9/1/20
93319In Table 19.4, void write(int) should be void write (int b)Tomasz Kasprzy11/13/20
93519In the second paragraph, copy() should be copyFile()Nyeng Gyang7/17/21
4719The first paragraph on the page about wrapping a low-level file stream class should be removedAlejandro Vizcaino10/10/22
94819The four method signatures at the end should have the … before argsMatus Iglarcik12/26/20
95719The second to last line should say “characters”, not “digits”Daniel Polách10/18/20
96319#10. Option F should include that an instance member could also be null.Roy van Rijn1/3/22
96319#11 – deleteTree(“/storage”) should be deleteTree(new File(“/storage”)) in the question. Give yourself credit if you answered option F.Jos Roseboom9/19/20
96719#22 “line 15” should say “line 17”Jos Roseboom9/19/20
97420public URI toURI() should be public URI toUri()Joel Kaze2/14/21
98520In the tip “Files.resolve()” should be “resolve()”Jos Roseboom9/19/20
98520At the bottom of the page, relativize(), should be relativize(Path path)Joel Kaze2/14/21
98820In table 20.3, toURI() should be toUri()Edmond Yong9/19/20
98820In table 20.3, relativize() should be relativize(Path)Dario Orescanin10/18/20
99120In the first paragraph, “cobra is a symbolic link to snake” should be “snake is a symbolic link to cobra”Tomasz Kasprzyk11/13/20
100520In the second to last paragraph “Steam” should be “Stream”Jos Roseboom9/19/20
100620The last line should say “Total Size”, not “Total Directory Tree Size”Umur Poyraz12/7/21
100820In table 20.6, the third to last line should be /birds/robin/allBirds/robin/allBirdsDaniel Odrinski12/17/23
100820In the fifth row of table 20.6, “nest.gif” would be “wings.gif”Jos Roseboom9/19/20
104221In table 21.4, all of the wrapper classes should be changed to primitivesTomasz Kasprzyk11/13/20
106221In question #8, the SQL should reference the animal table rather than the names tableTomasz Kasprzyk11/13/20
109022In table 22.2, ObjectInputStream and ObjectOutputStream should be swappedIlenia Salvadori9/19/20
109322In the code block, the getOrder() method should be staticTomasz Kasprzyk11/13/20
1114ch 3 explanation#13 – Remove “since the order … is the same” for & and ^Peter Prazenica3/4/23
1118ch 4 explanation#13 – “prints three distinct numbers” should be “prints two distinct numbers”Oksana Cherniavskaia7/18/20
1120ch 5 explanation#9 – “a” should be “s2”Amir Shah12/26/20
1122ch 5 explanation#25 – “It is not the case for option D” should be “it is the case for option D” and “or option F” should be “but not option F”Anna Da7/3/21
1123ch 6 explanation#2 – String should be StringBuilder in the explanationJoão Lopes3/4/23
1140ch 11 explanation#4 – Ignore everything about option D in the explanationFederica Sacca6/3/22
1140ch 11 answer#8 – give yourself credit if you answered E (But knowing that is out of scope)Oksana Cherniavskaia7/19/20
1142ch 12 answer #3 – Give yourself credit if you answered B, C, and DDean Kirby4/13/20
1159ch 16 explanation#25 – “does compile” should be “does not compile”John Fisher1/23/21
1160ch 17 answer#9 – The answer should be H and “–internal-jdk” should be “jdk-internals”Mustafa Iilkkan7/18/20
1161ch 17 explanation#15 -“The service provider must” should be “The service locator must”Edmund Yong8/22/20
1164ch 18 explanation#14 – The answer is correct. Option C would not be correct though i the method were fixed because service is not effectively final.Tomasz Kasprzyk10/18/20
1165ch 18 explanation#22 – sheepCount2 should be s2Vitaliy Kotov1/5/22
1172ch 20 answer#22 – The correct answer is C and E. APPEND throws an exception if the file does not existMatus Iglarcik12/26/20
1175ch 22 answer#6 – A is not correct. clone() is protected, not publicAlejandro Vizcaino10/10/22
815 Test bank 1#2The explanation should say that the ternary operator has the highest precedence, not the assignment operatorVlad Alin12/7/21
815 Test bank 2#25“we divide these two values, we get 0” should be “we divide these two values, we get 1”Vlad Alin12/7/21
816 Test bank1The question about which module “can reference classes” in another module has the wrong answer. E and F are also correct.Fabio Salvi8/19/20
816 Test bank1The question with r.negate() should also have BiPredicate as a correct answerSamuel Silver Moos1/26/21
FlashcardsThe one with the example [1 2] [3 4]. should say 2D, not 3DJesse Silverman11/13/20
FlashcardsThe flashcard about get() should be Supplier as the answerGuerchi Lucio12/26/20
FlashcardsThe one about “removeIf” should have both List and Set as an answer.Patrick Kessels5/30/22