OCPJP 8 Preparation

OCPJP 8 Preparation Tips

The term OCPJP 8 refers Oracle Certified Professional, Java SE 8 Programmer. This certification requires you to complete OCAJP 8 before taking this exam or you can choose upgrade path exams if you already hold SCJP or OCPJP older certifications.

Please find the certification path chart:







Quick overview of OCPJP 8

This is an entry level Java SE 8 Programmer certification without any mandatory pre-requirement.

Exam Number 1Z0-809
Duration 150
Exam Title Java SE 8 Programmer II
Number of Questions 85
Passing Score 65%
Java Version SE 8
Exam Format Multiple Choice
Exam Price Contac Oracle Site or Local Test Center

What are the topics covered in OCPJP 8 Preparation?

You must cover the following exam topics for OCPJP 8 Preparation:

Java Class Design

  •  Implement encapsulation
  • Implement inheritance including visibility modifiers and composition
  • Implement polymorphism
  • Override hashCode, equals, and toString methods from Object class
  • Create and use singleton classes and immutable classes
  • Develop code that uses static keyword on initialize blocks, variables, methods, and classes

Advanced Java Class Design

  • Develop code that uses abstract classes and methods
  • Develop code that uses the final keyword
  • Create inner classes including static inner class, local class, nested class, and anonymous inner class
  • Use enumerated types including methods, and constructors in an enum type
  • Develop code that declares, implements and/or extends interfaces and use the @Override annotation.
  • Create and use Lambda expressions

Generics and Collections

  • Create and use a generic class
  • Create and use ArrayList, TreeSet, TreeMap, and ArrayDeque objects
  • Use java.util.Comparator and java.lang.Comparable interfaces
  • Collections Streams and Filters
  • Iterate using forEach methods of Streams and List
  • Describe Stream interface and Stream pipeline
  • Filter a collection by using lambda expressions
  • Use method references with Streams

Lambda Built-in Functional Interfaces

  • Use  the built-in interfaces included in the java.util.function package such as Predicate, Consumer, Function, and Supplier
  • Develop code that uses primitive versions of functional interfaces
  • Develop code that uses binary versions of functional interfaces
  • Develop code that uses the UnaryOperator interface

Java Stream API

  • Develop code to extract data from an object using peek() and map() methods including primitive versions of the map() method
  • Search for data by using search methods of the Stream classes including findFirst, findAny, anyMatch, allMatch, noneMatch
  • Develop code that uses the Optional class
  • Develop code that uses Stream data methods and calculation methods
  • Sort a collection using Stream API
  • Save results to a collection using the collect method and group/partition data using the Collectors class
  • Use flatMap() methods in the Stream API

Exceptions and Assertions

  • Use try-catch and throw statements
  • Use catch, multi-catch, and finally clauses
  • Use Autoclose resources with a try-with-resources statement
  • Create custom exceptions and Auto-closeable resources
  • Test invariants by using assertions

Use Java SE 8 Date/Time API

  • Create and manage date-based and time-based events including a combination of date and time into a single object using LocalDate, LocalTime, LocalDateTime, Instant, Period, and Duration
  • Work with dates and times across timezones and manage changes resulting from daylight savings including Format date and times values
  • Define and create and manage date-based and time-based events using Instant, Period, Duration, and TemporalUnit

Java I/O Fundamentals

  • Read and write data from the console
  • Use BufferedReader, BufferedWriter, File, FileReader, FileWriter, FileInputStream, FileOutputStream, ObjectOutputStream, ObjectInputStream, and PrintWriter in the java.io package.

Java File I/O (NIO.2)

  • Use Path interface to operate on file and directory paths
  • Use Files class to check, read, delete, copy, move, manage metadata of a file or directory
  • Use Stream API with NIO.2

Java Concurrency

  • Create worker threads using Runnable, Callable and use an ExecutorService to concurrently execute tasks
  • Identify potential threading problems among deadlock, starvation, livelock, and race conditions
  • Use synchronized keyword and java.util.concurrent.atomic package to control the order of thread execution
  • Use java.util.concurrent collections and classes including CyclicBarrier and CopyOnWriteArrayList
  • Use parallel Fork/Join Framework
  • Use parallel Streams including reduction, decomposition, merging processes, pipelines and performance.

Building Database Applications with JDBC

  • Describe the interfaces that make up the core of the JDBC API including the Driver, Connection, Statement, and ResultSet interfaces and their relationship to provider implementations
  • Identify the components required to connect to a database using the DriverManager class including the JDBC URL
  • Submit queries and read results from the database including creating statements, returning result sets, iterating through the results, and properly closing result sets, statements, and connections


  • Read and set the locale by using the Locale object
  • Create and read a Properties file
  • Build a resource bundle for each locale and load a resource bundle in an application

OCPJP 8 Top 10 Preparation Tips

Tip #1: The real exam tests your programming skills for OCPJP 8 and it requires good preparation on each and every exam objective. You need to prepare well on Java SE 8 changes like Lambda Expressions, Streams, Java Date/Time API, JDBC improvements, Collection improvements, NIO2, etc. Download JDK 8 from Oracle’s website and workout more program examples.

Tip #2: Don’t rush into practicing with OCAPJP 8 mock exams before you get good knowledge in Java SE 8 changes. Focus more on Lambda Expressions, Streams, Java Date/Time API and other improvements.

Tip #3: Take pocket diary or pocket size papers to note important OCPJP 8 highlights and it will be very useful for quick preparation.

Tip #4: Oracle keep on updating real exam questions, so 100% syllabus coverage is good for getting great score in OCPJP 8 real exam. Do not skip any topics; try to do more research if you are unclear in any exam topics.

Tip #5: Create folder structure for each exam topic and maintain your code for future reference. Play more with your program examples and study well on each exam objective. Do more research on when Exception will be thrown, changes in which line will create success /failure, what will be the output… etc.

Tip #6:  Remember that your real exam does not allow you to compile/run the code. You just write calculation/logic flow in a paper to come up with the result. So practice more on your programs and improve your knowledge to know the result of a program without running the code.

Tip #7: If you have completed all these steps successfully you are ready to prepare with OCPJP 8 Mock Exams. Try with free mock exams first and then workout your practice questions covered in your preparation book.

Tip #8:  Choose best preparation mock exams for OCPJP 8 and start attending full length mock exams to know your skill levels on exam objective. Read explanations and prepare well to get good score in mock exams.

Tip #9:  You can plan for your real exam schedule once you are good confidence in OCPJP 8 exam objectives. You must be prepared to answer in any exam objective with or without program.

Tip #10:  On real exam Center, take a deep breath and open your test session. Don’t rush into answering all questions in same sequence, try to prioritize and complete the exam.

  • First round, answer questions which you know very well
  • Second Round, try to answer with the help of paper work and mark any questions which need further attention
  • Third round, verify answers for the marked questions and correct them
  • Fourth round, review all question & answers
  • Final Review, do not click finish before the time expires. You can still have time for changes in your answers during review, so do more review if you have time.

Leave a Reply