Why This Book is Different?

  • it shows HOW to solve the exam questions rather than simply explaining such and such rules from the Java Language Specifications (JLS);
  • it gives specific mnemonic formulas to remember the JLS rules better;
  • presents typical errors likely to be made during the test;
  • lists specific traps, which are built-in into the questions.

The author scored 98% on the exam. Every skill you need to master to pass the 1Z0-808 and become an Oracle Certified Associate, Java SE8 Programmer I, is covered by this 450-page-long book, which is:

✓ Based on bitter personal experience
✓ Brims with hints, tips and tricks
✓ Includes 300+ hand-picked quizzes (available as online tests, too)
✓ Offers in-depth explanations
✓ Provides mnemonics and shorthands
✓ Hits exam objectives from multiple angles
✓ Packs 5+KLOCs of 100% tested code
✓ Supported by an E-learning course with online tests, PowerPoint slides, etc.
✓ Politically incorrect

Tell me more (click to expand)

In author’s opinion, the best text book to learn the JLS rules for the OCA exam is B&S:
OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808 by Jeanne Boyarsky & Scott Selikoff

Why write another book on the same subject? Short answer: to make it easier to pass the exam; so let’s compare this book with B&S:

  • The exam lists 9 fundamental areas while B&S splits them into narrower chunks, which are then shuffled and re-arranged into 6 topics. Nailing 1Z0-808 follows the exam structure to the letter;
  • B&S gives exercises at the end of each chapter (six in total); my book does it 4 times more often in order to test the reader’s knowledge on a more detailed level;
  • Leaving aside the software-based mock-up exams, B&S contains 145 review questions; Nailing 1Z0-808 has 265 of them;
  • B&S formulates its review questions by increasing the level of difficulty from chapter to chapter; Nailing uses all subject areas from the beginning (for example, a question from the chapter on Java fundamentals may contain a try-catch block, which is covered in detail at the end of the book.) It’s because the exam rarely tells you what exactly you are being tested on;
  • While each of the exam questions specifies how many correct answers it expects, B&S almost never tells you the number of correct options. The authors argue that this way the review questions become harder (which is true) and, therefore, give the reader a better practice – which is WRONG! I personally witnessed that this approach is not only counterproductive but also harmful. The problem with B&S is that the book doesn’t take the time factor into consideration while on the exam you’ll have to race against time. Dealing with harder questions won’t help you learn how to crack easier quizzes in much, much shorter time because the technique is different – and Nailing shows you specifically how it should be done;
  • B&S discusses solutions in lesser detail; Nailing is more thorough; more than that, right during the discussion (especially when it comes to inheritance, exception handling and lambdas), the reader will get additional problems to crack, which helps take a look at the subject from a different perspective;
  • While covering the study material, B&S lists and illustrates the rules from the JLS; Nailing presents same rules in a recapitulating form (like a summary), which is easier to remember;
  • No other OCA guide (B&S included) offers mnemonic formulas; Nailing has many of them;
  • Whenever possible, Nailing lists specific traps and catches used on the real exam; B&S doesn’t go to such length;
  • Nailing explains in what order such and such review questions should be solved – and why; again, B&S doesn’t do that;
  • Nailing presents proven methods how to depict graphically objects’ lifecycle, inheritance relations, shorthand notation to crack loops, etc.; no other study guide teaches the reader such handy tricks;
  • All in all, B&S is about building and strengthening your knowledge base; Nailing is all about solving the real exam questions as reliably and fast as possible;
  • Unlike Nailing, no other OCA book, B&S included, covers specific rules on how to work with the questions during the test, e.g.:
    • at what speed and why;
    • what questions are most likely to be booby-trapped and what are the telltale signs;
    • what things are counterindicated during the first pass and should be done only during the Review.
  • B&S is limited to general statements on how to organize your preparation stage; Nailing gives the reader most precise and specific details (like tweaking Registry settings, writing a launcher, etc.) to do it in the most effective way;
  • While B&S does present the study material in a very organized and easily digested way, I got a totally wrong impression what to expect on the real exam. Only after realizing *how* the questions are meant to be solved, I received my 98% – with an incredible ease. This know-how is what you will get from Nailing 1Z0-808.

And don’t forget that you’ll have full access to E-learning course with online tests and so on. The questions in these tests fully mimic real exam’s questions by maintaining their structure, targeting same Exam Objectives and even containing same traps. It’s only custom class names, identifiers and literals that are different. Master underlying concepts, and you’ll have nothing to fear on the exam.

Here I tell what happened to me on the exam.
Download a sample (70 pages, PDF) to see for yourself how you can benefit from it.
Download resources (JVM launcher, practice questions in TXT format, etc.).
Check out E-learning course that comes with the book.

Nailing 1Z0-808: Practical Guide to Oracle Java SE8 Programmer I Certification is available as:
paperback ($24.95) from amazon.com;
true PDF file ($15) from this page through

Discount Coupons (click to expand)

Leaving a comment or, better yet, a review of free sample will earn you a 10% discount.

After payment you will receive a link for instant download. If you need any help, I’ll be around.

Errata List (sortable; click column headings)
# Page Location Reads Should read Reported by
1 224 footnote 85 the easienst way the easiest way author
2 315 4th paragraph from the bottom RT== Flier RT== Flyer author
3 116 6th line from the bottom remotes controllers remote controllers author
4 401 5th paragraph from the bottom must contains must contain author
5 372 11th row from the bottom returns -1 if not found delete it altogether author
6 403 10th line from the bottom line XXX does the same line XXXX does the same author
7 405 Problem 9.12 block, last line in Strings in String author
8 430 4th line from the top in Step 3 be enclosed in parentheses be enclosed in braces author
9 14 15th line from the top out of seventy seven out of eighty (because in the mid-December, 2016, Oracle again changed the number of questions) author
10 411 2nd line from the bottom them remove() then remove() author
11 423 2nd line in the footnote hence return is mandatory hence return is mandatory when the LE uses braces and a semicolon author
12 376
& 401
Options ABCE in Problem 9.5: end indices in append() and substring() 19 20
(in other words, replace all occurences of 19 with 20 because the end index is exclusive)
Wolfgang Mueller
13 123 The 2nd text paragraph from the bottom s2 “Alice (the former s1)” author
14 63 Last Problem’s heading Problem 1.2-A Problem 1.2 – D (also change it in Key Summary) William
15 367 Answers to Problem 8.21 Problem 8.21-D Problem 8.21 – C (also change it in Key Summary) William



  1. William

    Hi Igor
    Thanks for your book. I just passed the 1Z0-808 OCA exam with 91% by studying your book and practice enthuware. Do you have any recommendations on preparing for 1Z0-809 OCP exam?

    • Hello William,
      Let me congratulate you on this wonderful news! you’ve just made my day 🙂
      Speaking of 1Z0-809, your primary goal should be conquering FP (that is, functional programming) and FP-related topics such as Generics, Collections, lambda expressions, method references, Stream API, and so on.
      Reason: out of 85 questions, thirty seven were concerning FP in one way or another.
      Surprisingly enough, JDBC-related questions were also rather high on the agenda (if I’m not mistaken, there were at least five such questions). On the other hand, Concurrency, Inner Classes, IO/NIO, Date/Time API, Assertions etc. were given minimum attention. Certain topics (such as hash() contracts, for example) I didn’t meet at all…
      I’ve already posted some materials on 1Z0-809 preparation here and here; they are far from completion, but at least Stage 3 (together with online tests) is fully operational — and it contains *everything* you need to know, I promise.
      And now a final word of caution: go easy on Enthuware. This time their Question Bank was WAY TOO difficult. They went too deep, into such nuances and quirks of the language that their practice questions were actually annoying, frustrating and of almost no help. I’d suggest you just focus of the FP part of their Question Bank.

  2. William

    Hi Igor,
    Problem 8.21
    public class Test{
    public double test(double d){
    if(d > 0.5) return 1;
    if(d < 0.1) throw new Exception("Too small!"); // line t1
    catch(Exception e) {
    return 666; // line t2
    finally {
    return 42; // line t3
    public static void main(String args[]){
    System.out.println(new Test().test(Math.random()));

    Which one is true?
    A. The code always prints 42
    B. The code will fail compilation if line t1 is commented out
    C. The code compiles if both t1 and t2 are commented out
    D. None of the above

    I dont understand why C is not true

    • Yes, William, you are right, thank you. Option C is true (since Exception includes RuntimeException, as well). Added to Errata.

  3. William

    Hi Igor,
    page 171 a1[1][0] = a3; should throw null pointer exception

    int[][] a1 = new int[5][];
    int[][] a2 = new int[2][];
    int a3 = 10;
    a1[1][0] = a3; <– this throws null pointer exception

    • Oh yes, William, you are quite correct. This particular LOC does throw an NPE because the second dimension in a1 wasn’t defined (after all, the a1 array was created as new int[1][]).
      On the other hand, the first EXTRA segment on page 171 was about the validity of assignments; it didn’t concern anything that might happen at run time.

  4. William

    Hi Igor
    I am not sure I understand Option A of Problem 9.41, even though it compile ok and runs ok. How can we have check(list, myList -> list.isEmpty()); where myList does not seem used in the lambda function

    Problem 9.41
    class Test {
    String check(List list, Predicate p){ // line t1
    return p.test(list)? "Empty" : "Populated";
    void run() {
    ArrayList list = new ArrayList(); // line t2
    check(list, list -> list.isEmpty())); // line t3
    public static void main(String[] args) {
    new Test().run();

    Which two options can make the code compile and run successfully?

    A. Replace line t3 with check(list, myList -> list.isEmpty()));

    B. Replace line t2 with List list = new ArrayList();
    and replace line t3 with check(list, myList -> myList.isEmpty()));

    C. Replace line t1 with String check(List list, Predicate p){
    and line t3 with check(list, myList -> myList.isEmpty()));

    D. Replace line t1 with String check(ArrayList list, Predicate p){
    line t2 with List mist = new ArrayList();
    and line t3 with check(mist, list -> list.isEmpty()));

    E. Replace line t1 with String check(List list, Predicate p){
    and line t3 with check(list, myList -> myList.isEmpty()));

    • Here’s a little trick I learned when studying functional programming myself: if a particular lambda expression seems at first incomprehensible, try mentally convert it to an anonymous function, and see if it helps. For example, this is what we’ll get in our case:

      check(list, new Predicate() {
      public boolean test(Object MyList) {
      return list.isEmpty();

      The list variable is clearly accessible and since any method in Java is free to ignore any argument we pass to it, there are no reasons for this code to fail compilation or produce unexpected results.

    • Hello William! Hopefully, you’ve received your automatically generated Discount Coupon. If not, just let me know, I’ll email it to you directly…

    • That’s the spirit Amjad! I approve completely.
      Michelangelo is attributed this quote: “The greatest danger for most of us is not that our aim is too high and we miss it, but that it is too low and we reach it.” So go for it with all your guns blazing…
      Four months of study should be more than enough provided you practice at least a couple of hours every day; do watch Simon Roberts’ video lessons (when you are on a tight budget, it’s OK to use torrents and buy his course after you benefited from it); ask questions to clarify any doubts immediately.
      For even more practice use Enthuware but stay away from Kaplan Self-Test (FYI: the company is called now Transcender).
      Periodically check out Oracle certification site: they often offer discounts (~15%) for a limited period of time.
      And good luck!

      • Amjad Khan

        Thank You a lot!!
        Yeah, I will do my best to archive the highest score.
        yes, I’m studying Simon Roberts’ video lessons and I’m interested to buy your book also.
        how can I get the Discount Coupon code?

        • Actually, when anybody places a comment on this page, a new window with a 10% discount code should pop up… Okay, I’m going to send the code to your email box directly (@gmail.com). If something doesn’t work again please contact me; this WordPress engine and plugin updates get broken from time to time… Sorry! 🙂

  5. J. Wolfgang Mueller

    Hi Igor,
    After I had studied B & S’s 1Z0-808 OCA study guide and had done many enthuware tests, I came across your greatful book. This resulted in having postponed the date for my exam for the moment. I’ve got the feeling it will help a lot. Thank you very much for your effort.
    When working through the keys & discussion 9.5, I came accross one more thing whitch may be one for your errata. I think the end index should be 20, rather than 19 for the correct answers B and E, shouldn’t it?
    // B : return lead + accNum.substring(15, 20);
    // E : return new StringBuilder(lead).append(accNum, 15, 20).toString();

    I saw that you want to do the 1Z0-809 as well. Good luck and it would be really great to have another book afterwards.
    Thanks again,

    • Good eyes, Wolfgang! Your remark is spot on! Added to Errata.
      Incidentally, a similar (but somewhat simpler) question is on the exam; met it both times.
      And I wish you a very good luck, too 🙂

      • J. Wolfgang Mueller

        Hi Igor, congratulations to your 809 exam.
        Also thanks to your book, I passed the 808 on Friday with 80%.
        Very nice to hear that there will be one more book for the 1Zo-809.
        Looking forward to learn the tips and tricks from a 97% guy.

        • Wunderbar! Good job Wolfgang! you did it, that’s a very good news!
          Now, about this new book on 1Z0-809: it is really going to take some time to write it as the exam covers a lot of ground. But I can tell you right away that the most important thing to keep in mind is this: the key to the success on 1Z0-809 is functional programming. Thirty four questions out of 85 were about lambdas, method references, java.util.stream.Stream’s methods and those functional interfaces that live in that package…

  6. I haven’t abandoned this project, not at all. The reason I’m not posting anything is quite simple: my OCP exam is in less than 3 weeks (it’s scheduled for April 28, 2017) — and I’m telling you guys, this 1Z0-809 thing is just… just… too much. Some topics are nothing short of scary, honest to God. But you know what? I found lots of interesting details how to prepare for this exam; will probably write another book, this time on 1Z0-809, but only if I get at least 94-96. And if not… well, there gonna be a bunch of articles on this site, so come back in… I dunno… in a couple of months?

    • 97%.
      Looks like, there’s going to be one more book, after all…
      What’s interesting, I got a job offer right after the exam.

    • Daniel Bubenheim

      Thanks Mr. Soudakevitch,

      for sharing these in-depth resources. I just ordered the book (after reading the sample) on amazon which will hopefully help me even more to get through the exam successfully.

      Cheers, Daniel

Leave Comment

Your email address will not be published.