Java OCP 11 Developer Complete Study Guide

Update: Read this post to learn how to use this book to study for the new 1Z0-819 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 book OCP Oracle Certified Professional Java SE 11 Developer Complete Study Guide: Exam 1Z0-815, Exam 1Z0-816, and Exam 1Z0-817 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” 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

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

lxxxIntro815 #11 – “it is implicitly cast” should be “it is explicitly cast”Tomasz Kasprzyk8/19/20
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
863The example with lion and tiger should be removed. It is incorrect. (++lion should execute before lion–)Frank Mi8/20/20
1484In the third paragraph, “skipping all leopards” should be “cleaning all leopards”Tomasz Kasprzyk8/19/20
48611#7 – the question should not contain “to dog”Christian Schulz7/4/20
51512In Table 12.1, “Final” should be “final”Scott Selikoff7/3/20
54312#10 – Remove all references to the Wild interfaceOksana Cherniavskaia8/19/20
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
59213#13 – “optional annotation” should be “optional annotation element”Pavel Serebriakov8/19/20
51814Set.of(‘z’, ‘o’, ‘o’) should be Set.of(‘z’, ‘o’, ‘O’)Charles O’Leary9/3/20
62314Set.of(‘z’, ‘o’, ‘o’) should be Set.of(‘z’, ‘o’, ‘O’)Charles O’Leary9/4/20
623In 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
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
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
818Bullet 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
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
85218In the last row of Table 18.1, remove the last sentence (about returning a Future)Brad Bouquio8/19/20
85918In the first sentence of “Submitting Task Collections”, Table 18.2 should be Table 18.1Jos Roseboom9/19/20
86918The header “Applying a ReentrantLock Interface” should be “Applying a ReentrantLock”Jos Roseboom9/19/20
93119“void void” should be “void” in the first lineVladimir Prud9/1/20
95719The second to last line should say “characters”, not “digits”Daniel Polách10/18/20
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
98520In the tip “Files.resolve()” should be “resolve()”Jos Roseboom9/19/20
98820In table 20.3, toURI() should be toUrl()Edmond Yong9/19/20
98820In table 9.3, relativize() should be relativize(Path)Dario Orescanin10/18/20
100520In the second to last paragraph “Steam” should be “Stream”Jos Roseboom9/19/20
100820In the fifth row of table 20.6, “nest.gif” would be “wings.gif”Jos Roseboom9/19/20
109021In table 22.2, ObjectInputStream and ObjectOutputStream should be swappedIlenia Salvadori9/19/20
1118ch 4 explanation#13 – “prints three distinct numbers” should be “prints two distinct numbers”Oksana Cherniavskaia7/18/20
1140ch 11 answer#8 – give yourself credit if you answered E (But knowing that is out of scope)Oksana Cherniavskaia7/19/20
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
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