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
- Check the latest score/duration/objectives
- CertView (register for the test and check your score) and ID requirements. See blog on how to register (English) or blog on how register (other languages)
- OWASP Top 10
- Egregious Eleven
- Download Java 11 from Oracle
- Chapter 11 GitHub Examples
- Chapter 17 GitHub Examples
- How to access the online mock exams
Where to buy it
Score/length
- 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 https://coderanch.com/f/24/java-programmer-OCPJP. Be sure to include “Sybex CSG 11” or “Sybex 819” and the chapter and/or page number in the subject.
Page | Chapter | Error | Reporter | Confirmed |
lxiv | Intro | 815 #14 – || should be | | Alessandro Putzu | 8/22/22 |
lxxx | Intro | 815 #11 – “it is implicitly cast” should be “it is explicitly cast” | Tomasz Kasprzyk | 8/19/20 |
ixxxxiv | Intro | 816 #13 explanation -“Line 10 includes” should be “Line 9 includes” | Olivia Johnson | 2/21/21 |
12 | 1 | String… args; should be String… args (no semicolon) | Brad Phillips | 10/11/21 |
26 | 1 | At the top of the page, single file source code execution doesn’t prohibit other sources. | Anlar Larsen | 5/14/22 |
75 (Kindle only) | 2 | In question #12, the blank is in the wrong place. | David Kobrin | 8/30/20 |
70 | 2 | The first bullet should say “the later five” rather than “the later four” | Rade Koncar | 10/18/20 |
83 | 3 | While 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 Gemayel | 3/2/21 |
86 | 3 | The example with lion and tiger should be removed. It is incorrect. (++lion should execute before lion–) | Frank Mi | 8/20/20 |
111 | 3 | #20 – Option A should say “numeric binary” instead of “binary” to avoid an edge case. | Samuel Silver Moos | 12/26/20 |
148 | 4 | In the third paragraph, “skipping all leopards” should be “cleaning all leopards” | Tomasz Kasprzyk | 8/19/20 |
n/a | 5 | #8 – online, the correct answer is ADE, not ADF | Samuel Silver Moos | 2/14/21 |
238 | 6 | In the second sentence, it should say that values() returns a Collection | Jesse Silverman | 11/13/20 |
379 | 9 | “Owls implements Nocturnal, CanFly” should be “Owls implements HasBigEyes” | Michael Reeve | 12/26/20 |
420 | 10 | “all inherit the same interface or extend” should be “all extend” | Rade Koncar | 12/26/20 |
476 | 11 | On the last line, “zoo.staff package” should be “zoo.staff module” | Emmanuel Szpiega | 7/4/22 |
478 | 11 | In the feature, change “As a reminder” to “If we change” | Anton Fuchsberger | 11/13/20 |
486 | 11 | #7 – the question should not contain “to dog” | Christian Schulz | 7/4/20 |
492 | 11 | #21 – It would be clearer if “n” were the module name and “c” were the fully qualified class name | Roman Bohdanov | 12/19/21 |
515 | 12 | In Table 12.1, “Final” should be “final” | Scott Selikoff | 7/3/20 |
535 | 12 | “required when using the parameter name” should be “required when using the parameter type | Ronaldo Rosa | 7/4/21 |
538 | 12 | new Outer.new Inner() should be new Outer().new Inner() | Jesse Silverman | 11/13/20 |
543 | 12 | #10 – Remove all references to the Wild interface | Oksana Cherniavskaia | 8/19/20 |
544 | 12 | #11 – Remove the line numbers | Daniel Fernandez Boada | |
547 | 12 | In question 16, option D, should be “Transport”, not “Transport” | Tomasz Kasprzyk | 10/18/20 |
582 | 13 | Both instances of @SafeVargs should be @SafeVarargs | Pavel Serebriakov | 8/19/20 |
583 | 13 | In the middle page “@SafeVarargs annotation to line 4” should be “@SafeVarargs annotation to line 3” | Tomasz Kasprzyk | 10/18/20 |
587 | 13 | In the summary, “depreciation” should be “deprecation” | Karsten Thoms | 7/4/21 |
592 | 13 | #13 – “optional annotation” should be “optional annotation element” | Pavel Serebriakov | 8/19/20 |
623 | 14 | Set.of(‘z’, ‘o’, ‘o’) should be Set.of(‘z’, ‘o’, ‘O’) | Charles O’Leary | 9/4/20 |
523 | 14 | “It is not true that you can pass “any number of pairs” should be “up to 10 pairs” | João Lopes | 3/4/23 |
623 | 14 | In 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 Roseboom | 9/19/20 |
624 | 14 | The merge() method takes a BIFunction, not a Function | Vasiliy Spodin | 9/1/20 |
624 | 14 | In Table 14.7, forEach() and merge() have parens instead of <> around the generics | Taiwo Ajayi | 6/29/22 |
630 | 14 | In the real world scenario, “Queue” should be “List” | Mourid Smida | 11/22/22 |
631 | 14 | In the third paragraph “a class called Comparator” should be “an interface called Comparator” | Oksana Cherniavskaia | 8/20/20 |
641 | 14 | Near the middle of the page “class Duck cannot be cast” should be “class Rabbit cannot be cast” | Vladimir Prud | 8/19/20 |
644 | 14 | In the last line of code on the page, “SizeLimiteCrate” should be “SizeLimitedCrate” | Tomasz Kasprzyk | 10/18/20 |
657 | 14 | “Character is autoboxed into char” should be “Character is unboxed into char” | Emmanuel Szpiega | 7/4/22 |
715 | 15 | In 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.0 | Javid Asgarov | 7/3/21 |
721 | 15 | “Collectors interface” should be “Collectors class” | Amir Shah | 12/26/20 |
788 | 16 | In the 2nd exam essentials “as well as a try statement with a finally block” should be removed | Oksana Cherniavskaia | 8/20/20 |
various | 17 | There 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 Spoden | 9/19/20 |
804 | 17 | “Derivative” should be “Directive” in the Table 6.1 header | Borislav Merchev | 7/3/21 |
809 | 17 | “do not export any packages to named or automatic modules” should be “do not export any packages to named modules” | Hans-Joachim Bleichenbacher | 7/4/22 |
818 | 17 | Bullet 4 should say “next-highest level” rather than “next-lowest level” | Tomasz Kasprzyk | 10/18/20 |
820 | 17 | The sentence before figure 6.9 should say “the new module zoo.tickets.etech” not “the new module zoo.tickets.discount” | Jos Roseboom | 9/19/20 |
822 | 17 | At the bottom of the page, “models make up” should be “modules make up” | Tomasz Kasprzyk | 10/18/20 |
823 | 17 | In Figure 17.10, the arrow from service provider interface to service provider is the wrong way. | Jeanne Boyarsky | 7/10/20 |
823 | 17 | In figure 17.10 “reservation” should be “reservations” | Emmanuel Szpiega | 7/4/22 |
824 | 17 | In the last paragraph “provides a ServiceLocator” should be “provides a ServiceLoader” | Vasiliy Spodi | 8/19/20 |
836 | 17 | Options D, E, and F should say “magic.helper” instead of “magic.util” | Edmond Yong and Oksana Cherniavskaia | 8/27/20 |
850 | 18 | In the third paragraph, “results are guaranteed to be executed sequentially” should be “tasks are guaranteed to be executed sequentially” | Matus Iglarcik | 12/26/20 |
852 | 18 | In the last row of Table 18.1, remove the last sentence (about returning a Future) | Brad Bouquio | 8/19/20 |
856 | 18 | In the first sentence of “Submitting Task Collections”, Table 18.2 should be Table 18.1 | Jos Roseboom | 9/19/20 |
865 | 18 | The header “Applying a ReentrantLock Interface” should be “Applying a ReentrantLock” | Jos Roseboom | 9/19/20 |
870 | 18 | I the table “until lock is required’ should be “unit lock is acquired” | Taiwo Ajayi | 4/30/22 |
908 | 18 | #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 |
931 | 19 | “void void” should be “void” in the first line | Vladimir Prud | 9/1/20 |
933 | 19 | In Table 19.4, void write(int) should be void write (int b) | Tomasz Kasprzy | 11/13/20 |
935 | 19 | In the second paragraph, copy() should be copyFile() | Nyeng Gyang | 7/17/21 |
47 | 19 | The first paragraph on the page about wrapping a low-level file stream class should be removed | Alejandro Vizcaino | 10/10/22 |
948 | 19 | The four method signatures at the end should have the … before args | Matus Iglarcik | 12/26/20 |
957 | 19 | The second to last line should say “characters”, not “digits” | Daniel Polách | 10/18/20 |
963 | 19 | #10. Option F should include that an instance member could also be null. | Roy van Rijn | 1/3/22 |
963 | 19 | #11 – deleteTree(“/storage”) should be deleteTree(new File(“/storage”)) in the question. Give yourself credit if you answered option F. | Jos Roseboom | 9/19/20 |
967 | 19 | #22 “line 15” should say “line 17” | Jos Roseboom | 9/19/20 |
974 | 20 | public URI toURI() should be public URI toUri() | Joel Kaze | 2/14/21 |
985 | 20 | In the tip “Files.resolve()” should be “resolve()” | Jos Roseboom | 9/19/20 |
985 | 20 | At the bottom of the page, relativize(), should be relativize(Path path) | Joel Kaze | 2/14/21 |
988 | 20 | In table 20.3, toURI() should be toUri() | Edmond Yong | 9/19/20 |
988 | 20 | In table 20.3, relativize() should be relativize(Path) | Dario Orescanin | 10/18/20 |
991 | 20 | In the first paragraph, “cobra is a symbolic link to snake” should be “snake is a symbolic link to cobra” | Tomasz Kasprzyk | 11/13/20 |
1005 | 20 | In the second to last paragraph “Steam” should be “Stream” | Jos Roseboom | 9/19/20 |
1006 | 20 | The last line should say “Total Size”, not “Total Directory Tree Size” | Umur Poyraz | 12/7/21 |
1008 | 20 | In table 20.6, the third to last line should be /birds/robin/allBirds/robin/allBirds | Daniel Odrinski | 12/17/23 |
1008 | 20 | In the fifth row of table 20.6, “nest.gif” would be “wings.gif” | Jos Roseboom | 9/19/20 |
1042 | 21 | In table 21.4, all of the wrapper classes should be changed to primitives | Tomasz Kasprzyk | 11/13/20 |
1062 | 21 | In question #8, the SQL should reference the animal table rather than the names table | Tomasz Kasprzyk | 11/13/20 |
1090 | 22 | In table 22.2, ObjectInputStream and ObjectOutputStream should be swapped | Ilenia Salvadori | 9/19/20 |
1093 | 22 | In the code block, the getOrder() method should be static | Tomasz Kasprzyk | 11/13/20 |
1114 | ch 3 explanation | #13 – Remove “since the order … is the same” for & and ^ | Peter Prazenica | 3/4/23 |
1118 | ch 4 explanation | #13 – “prints three distinct numbers” should be “prints two distinct numbers” | Oksana Cherniavskaia | 7/18/20 |
1120 | ch 5 explanation | #9 – “a” should be “s2” | Amir Shah | 12/26/20 |
1122 | ch 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 Da | 7/3/21 |
1123 | ch 6 explanation | #2 – String should be StringBuilder in the explanation | João Lopes | 3/4/23 |
1140 | ch 11 explanation | #4 – Ignore everything about option D in the explanation | Federica Sacca | 6/3/22 |
1140 | ch 11 answer | #8 – give yourself credit if you answered E (But knowing that is out of scope) | Oksana Cherniavskaia | 7/19/20 |
1142 | ch 12 answer | #3 – Give yourself credit if you answered B, C, and D | Dean Kirby | 4/13/20 |
1159 | ch 16 explanation | #25 – “does compile” should be “does not compile” | John Fisher | 1/23/21 |
1160 | ch 17 answer | #9 – The answer should be H and “–internal-jdk” should be “jdk-internals” | Mustafa Iilkkan | 7/18/20 |
1161 | ch 17 explanation | #15 -“The service provider must” should be “The service locator must” | Edmund Yong | 8/22/20 |
1164 | ch 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 Kasprzyk | 10/18/20 |
1165 | ch 18 explanation | #22 – sheepCount2 should be s2 | Vitaliy Kotov | 1/5/22 |
1172 | ch 20 answer | #22 – The correct answer is C and E. APPEND throws an exception if the file does not exist | Matus Iglarcik | 12/26/20 |
1175 | ch 22 answer | #6 – A is not correct. clone() is protected, not public | Alejandro Vizcaino | 10/10/22 |
815 Test bank 1 | #2 | The explanation should say that the ternary operator has the highest precedence, not the assignment operator | Vlad Alin | 12/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 Alin | 12/7/21 |
816 Test bank | 1 | The question about which module “can reference classes” in another module has the wrong answer. E and F are also correct. | Fabio Salvi | 8/19/20 |
816 Test bank | 1 | The question with r.negate() should also have BiPredicate as a correct answer | Samuel Silver Moos | 1/26/21 |
Flashcards | The one with the example [1 2] [3 4]. should say 2D, not 3D | Jesse Silverman | 11/13/20 | |
Flashcards | The flashcard about get() should be Supplier as the answer | Guerchi Lucio | 12/26/20 | |
Flashcards | The one about “removeIf” should have both List and Set as an answer. | Patrick Kessels | 5/30/22 |