O'Reilly logo
live online training icon Live Online training

OCA Java SE 8 Programmer Certification Crash Course

Your full Oracle Certified Associate Certification Resource

Simon Roberts

OCA Java SE 8 Programmer Certification Crash Course is a valuable tool for passing the OCA Java SE 8 Programmer exam. With 16 hours of training over 3 days, this is the go-to live training course to teach you the foundational Java programming topics you need to know to pass the OCA Java SE 8 Programmer exam. It is also an excellent tool for helping you cement core Java knowledge for your career as a programmer.

What you'll learn-and how you can apply it

This course will address all the objectives of the Oracle Certified Associate, Java SE 8 Programmer exam. The objectives are listed on the Oracle website: https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-808 Select “Review Exam Topics” to open the list of topics.

This training course is for you because...

  • You’re a Java programmer intending to take the certification exam
  • You’re a software engineer with skills in another object-oriented language (particularly the C/C++ derived family) looking to move into Java programming
  • You’re a beginning to mid-level Java programmer looking to build and solidify your skills in the language
  • You’re a college student looking for additional learning resources to help you with a Java course you’re taking


This course seeks to minimize prerequisites so as to be as accessible as possible, however, you should be reasonably comfortable reading simple code written in the Java programming language

Materials, downloads, or Supplemental Content needed in advance

  • While not required for participation, it’s a good idea if you have a Java development environment (e.g. NetBeans, Eclipse, Intelli-J IDEA or similar) so that you can experiment with the material you learn in the class.

Resources - Source code repository on github.com will be used to distribute examples and other materials created during the course

Recommended Prep:

  • Java Programming Basics This course provides an introduction the Java Programming Language and would be particularly appropriate for anyone with minimal background in Java before attending this live training. https://www.safaribooksonline.com/library/view/java-programming-basics/9780133975154/
  • OCA Java SE 8 Programmer (1Z0-808) Complete Video Course This course addresses, in detail, all the objectives of the exam and this live training and may be used before or after the live class to prepare, or reinforce and act as reference for the material learned. https://www.safaribooksonline.com/library/view/oca-java-se/9780134427201/OCA8_M10_L05_00.html

About your instructor

  • Simon started out working as a software engineer, specializing in industrial control systems, and had a sideline teaching for a local University in his then-home-town of Cambridge, England.

    In 1995 he joined Sun Microsystems, Inc. as a senior instructor and course developer. Simon spearheaded the introduction of Java training by Sun Microsystems in the U.K. in 1995. He developed the first Java certification exams for Sun before he moved to the U.S. in 1998.

    Since leaving Sun in 2004, Simon has developed and delivered training for clients around the world.

    Simon believes that training should have an immediate purpose and application, and that the most effective training is usually "on the job" mentoring, helping to remove the immediate roadblocks to productivity that so often plague workers in fast moving environments.


The timeframes are only estimates and may vary according to how the class is progressing

Day 1:

  • Create and manipulate calendar data using classes from:
    • java.time.LocalDateTime, java.time.LocalDate, java.time.LocalTime
    • java.time.format.DateTimeFormatter, java.time.Period
  • Apply the static keyword to methods and fields
  • Describe inheritance and its benefits
  • Develop code that makes use of polymorphism; develop code that overrides methods; differentiate between the type of a reference and the type of an object
  • Determine when casting is necessary
  • Create and overload constructors; differentiate between default and user-defined constructors
  • Apply encapsulation principles to a class
  • Apply access modifiers
  • Determine the effect upon object references and primitive values when they are passed into methods that change the values
  • Declare and use an ArrayList of a given type
  • Write a simple Lambda expression that consumes a Lambda Predicate expression
  • Explain an Object's Lifecycle (creation, "dereference by reassignment" and garbage collection)
  • Test equality between Strings and other objects using == and equals ()
  • Declare, instantiate, initialize and use a one-dimensional array

Day 2

  • Declare, instantiate, initialize and use multi-dimensional arrays
  • Create methods with arguments and return values; including overloaded methods
  • Use super and this to access objects and constructors
  • Use abstract classes and interfaces
  • Describe the advantages of Exception handling
  • Differentiate among checked exceptions, unchecked exceptions, and Errors
  • Create a try-catch block and determine how exceptions alter normal program flow
  • Create and invoke a method that throws an exception
  • Recognize common exception classes (such as NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException)
  • Declare and initialize variables (including casting of primitive data types)
  • Differentiate between object reference variables and primitive variables
  • Develop code that uses wrapper classes such as Boolean, Double, and Integer
  • Define the scope of variables
  • Create and use while loops

Day 3

  • Create and use for loops including the enhanced for loop
  • Create and use do/while loops
  • Compare loop constructs
  • Use break and continue
  • Create if and if/else and ternary constructs
  • Use a switch statement
  • Define the structure of a Java class
  • Create executable Java applications with the main method; run a Java program from the command line; produce console output
  • Import other Java packages to make them accessible in your code
  • Compare and contrast the features and components of Java such as platform independence, object orientation, encapsulation, etc.
  • Know how to read or write to object fields
  • Use Java operators; use parentheses to override operator precedence
  • Manipulate data using the StringBuilder class and its methods
  • Create and manipulate Strings