Java OCP 11 Programmer I Study Guide

Jeanne Boyarsky and Scott Selikoff developed two study guides for the new Oracle Certified Professional (OCP), Java SE 11 Programmer exams. The first book, OCP Oracle Certified Professional Java SE 11 Programmer I Study Guide:: Exam 1Z0-815 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 OCP Java 11” in the subject.

For more information, visit Oracle’s Java SE 11 Programmer I 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

  • Amazon paper  and ebook (Amazon sells the book for less than everyone else)
  • Barnes and Noble paper and nook (link coming soon)
  • Wiley Publishing (link coming soon)


Oracle has a tendency to change this information from time to time. As of May 20, 2019:

  • Length: 3 hours
  • # Questions: 80
  • Passing score: 63%

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:: Exam 1Z0-815:

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” and the chapter and/or page number in the subject.

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
392On the fifth line “”as only called” should be “as is only called”Riffath Khan2/23/20
472In table 2.2 “Short” should be “short”Nikolai Vinoku1/11/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
623In teh real world scenario, “automates” should be “automatically”Riffath Khan2/23/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
853In the first example, lion– should be evaluated before ++lionRiffath Khan2/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
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
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 teh 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
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
3859The last sentence should say “Since String does not implement Canine” rather than “Since String does implement Canine”Edmond Yong1/6/20
Various11All references to the module “zoo.animal.staff” should be “zoo.staff:Edmond Yong1/12/20
493Ch 1 answer#14 – C should not be correct. There is no -cp flagNikolai Vinoku1/11/20
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
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#6Option C is incorrect because it should have read Set<Boolean>Jeroen Steenbeeke2/9/20
Bonus exam#71Option B is correct for ordering package/import/class because comments are allowed anywhere in the file.Jeroen Steenbeeke2/9/20

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