Java OCP 11 Programmer I 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.

Jeanne Boyarsky and Scott Selikoff developed a two-part study guide for the new Oracle Certified Professional (OCP), Java SE 11 Programmer exam, 1Z0-819. The first book, OCP Oracle Certified Professional Java SE 11 Programmer I 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 815” in the subject.

For more information, visit Oracle’s Java SE 11 Exam page. 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


Oracle has a tendency to change this information from time to time. See the exam metadata.

Changes to the objectives

  • None so far

Online Material

  • None so far

Blog posts related to OCP Oracle Certified Professional Java SE 11 Programmer I Study Guide:

Java Release model information


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

xlviiiIntro#14 – || should be |Alessandro Putzu8/22/22
liiIntro#4 “fifth statement prints statement” should be” fifth print statement”Sybex6/24/20
liiiIntro#11 – “it is implicitly cast” should be “it is explicitly cast”Tomasz Kasprzyk8/19/20
various1We should have acknowledged that the classpath can be used with single file source code execution.Dean Kirby4/13/20
101String… args; should be String… args (no semicolon)Brad Phillips10/11/21
121In the fourth paragraph, it says you cannot use single file source code execution for a file with two classes in it. This is incorrect.Dinkar Joshi1/2/20
131Table 1.1 should say “For programs with one file” rather than “For programs with one class”Ilkay Polat2/12/20
211In Figure 1.2, ClassA.class and ClassB.class should be in packagea and packageb respectively. The compile /classes folder doesn’t reflect this.Susanta Chattopadhyay11/27/19
331#16 – the question should say what is most commonIlkay Polat8/22/20
392On the fifth line “”as only called” should be “as it is only called”Riffath Khan2/23/20
472In table 2.2 “Short” should be “short”Nikolai Vinoku1/11/20
522In the first paragraph, “otherAnswer variable is initialized” should be “otherAnswer variable is not initialized”Adrian Pop5/14/20
522In the second to last paragraph, “they are local variables that have been” should be “they are like local variables that have been”P Bakker1/18/21
572In the second paragraph, it says “Java is not case sensitive”. This should “Java is case sensitive”Ester Gambin1/11/20
592In the second paragraph, it says a method parameter is a local variable. It is like a local variable for garbage collection and scope, but not in terms of local variable type inference.Riffath Khan2/23/20
622In the real world scenario, “automates” should be “automatically”Riffath Khan2/23/20
682The first bullet should say “the later five” rather than “the later four”Rade Koncar10/18/20
813On the third line “The final values of cookies and reward” should be “The final values of reward and cookies”Mahmoud Elkeshky12/16/19
813While 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
853The example with lion and tiger should be removed. It is incorrect. (++lion should execute before lion–)Riffath Khan3/23/20
1093In Question #12, Options A and C are the same. Pretend option C says “post-increment, post-decrement”. (Spoiler: option C isn’t the answer!)Test bank team11/13/19
113320 – Option A should say “numeric binary” instead of “binary” to avoid an edge case.Samuel Silver Moos12/26/20
Kindle only4#6 – the blank is missing in the Kindle version. Assume there is a blank before count++;Nikolai Vinoku1/26/20
1254In the second to last paragraph, “only one of these case statements compiles” should be “only two of these case statements compile” Mike Cunningham2/2/20
1464In the third paragraph, “skipping all leopards” should be “cleaning all leopards”Tomasz Kasprzyk8/19/20
1795String concat = ” hello”; should be String concat = “hello “;Nikolai Vinoku1/26/20
1795The second to last paragraph is incorrect. The first statement prints true, not false because it is “concatentated” at compile time.Edmond Yong12/30/19
2015In the first code example. line 7 should be weights.remove(new Integer(50)); and the sentence about Line 7 in the following paragraph should be removedMahmoud Elkeshky1/12/20
2055In Table 5.7, “getOrDeafult” should be “getOrDefault”Wei-qiang Zhou3/12/20
2065In table 6.7 containsValue(Object key) should be containsValue(Object value)Windfer Garro2/2/20
2155#16 – Options E and F should read “two equivalent” instead of “two”Nikolai Vinoku1/26/20
2296The last line should say “the method returns 42”, not “the method returns 2”Nikolai Vinoku1/26/20
2366In the second sentence, it should say that values() returns a CollectionJesse Silverman11/13/20
2897In question #11 line 16 should be print(), not println()Nikolai Vinoku2/6/20
2937In question #19, option F should say “method”, not “constructorNikolai Vinoku2/6/20
3769“Owls implements Nocturnal, CanFly” should be “Owls implements HasBigEyes”Michael Reeve12/26/20
3859The last sentence should say “Since String does not implement Canine” rather than “Since String does implement Canine”. Also, the paragraph should say “cannot implement the interface rather than “does not implement the interface”Edmond Yong and Nicholas Barbosa1/6/20
41810“all inherit the same interface or extend” should be “all extend”Rade Koncar12/26/20
Various11All references to the module “zoo.animal.staff” should be “zoo.staff”Edmond Yong1/12/20
Various11All references to “zoo.animals” should be “zoo.animal”Jeanne Boyarsky5/17/20
45311In the last paragraph, “zoo.animals.talks” should be “zoo.animal.talks”Elena Felder
(While editing Appendix A of the Programmer II book)
45911-class-path should be –class-pathElena Felder
(While editing Appendix A of the Programmer II book)
47411On the last line, “zoo.staff package” should be “zoo.staff module”Emmanuel Szpiega7/4/22
47611In the feature, change “As a reminder” to “If we change”Anton Fuchsberger11/13/20
48111On the last line of the table it should be -m and –module instead of -d and –describe-moduleAdrian Pop6/13/20
48611#7 – the question should not contain “to dog”Christian Schulz7/4/20
49011#21 – It would be clearer if “n” were the module name and “c” were the fully qualified class nameRoman Bohdanov12/19/21
492Ch 1 answer#3 – Give yourself credit if you answered B, C, and DDean Kirby4/13/20
493Ch 1 answer#14 – C should not be correct. There is no -cp flagNikolai Vinoku1/11/20
500Chapter 3 explanation#13 – Remove “since the order … is the same” for & and ^Peter Prazenica3/4/23
504Ch 4 explanation#13 – “prints three distinct numbers” should be “prints two distinct numbers”Oksana Cherniavskaia7/18/20
506Ch 5 explanation#9 – “a” should be “s2”Amir Shah12/26/20
508Ch 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
509Ch 6 explanation#2 – String should be StringBuilder in the explanationJoão Lopes3/4/23
514Ch 8 explanation#5 – “lines 15 and 16” should be “lines 14 and 15”. “Line 17” should be “Line 16”Mike Gualeni3/12/20
515Ch 8 explanation#9 – “CharSequence is a subtype of String” should be “String is a subtype of CharSequence”Mike Gualeni3/12/20
519Ch 8 explanation#6 – “it does extend it” should be “it does not extend it”Adrian Pop6/13/20
526Ch 11 explanation#4 – Ignore everything about option D in the explanationFederica Sacca6/3/22
526Ch 11 answer#8 – give yourself credit if you answered E (But knowing that is out of scope)Oksana Cherniavskaia7/19/20
528Ch 11 answer#21 should be G because the question asks about a package name rather than a module name.Jakub Ch12/15/19
Bonus Exam 1#2The explanation should say that the ternary operator has the highest precedence, not the assignment operatorVlad Alin12/7/21
Bonus Exam 1#6Option C is incorrect because it should have read Set<Boolean>Jeroen Steenbeeke2/9/20
Bonus exam 1#71Option B is correct for ordering package/import/class because comments are allowed anywhere in the file.Jeroen Steenbeeke2/9/20
Bonus exam 2#19For the question about the module flag, give yourself credit if you answered A or D. While you don’t need to know these options for the exam, they do exist.Dimitri Nguyen7/20/20
Bonus exam 2#25“we divide these two values, we get 0” should be “we divide these two values, we get 1”Vlad Alin12/7/21
Bonus exam 2#65Option B is also correct (DoubleConsumer)Will Easter10/11/21
FlashcardsThe one about classpath options has the wrong answer. “-cp
, –classpath
, and -class-path” should be “-cp
, -classpath
, and –class-path”
Jeanne Boyarsky9/22/20
FlashcardsThe one with the example [1 2] [3 4]. should say 2D, not 3DJesse Silverman11/13/20
FlashcardsThe one about “removeIf” should have both List and Set as an answer.Patrick Kessels5/30/22

Want to report an errata? Post it at the OCP forum at CodeRanch.