O'Reilly logo
live online training icon Live Online training

OCA Java SE 8 Programmer Certification Crash Course, Part 1

Your full Oracle Certified Associate Certification Resource

Simon Roberts

This class is Part 1 of OCA Java SE 8 Programmer Certification Crash Course, Part 1. Certification can be a valuable distinguishing feature for your resume, and if you’re looking for credibility as a Java programmer, Oracle’s is the certification you mostly likely will pursue. The certification is the most recent in a long line of exams originated by the presenter of this course while he worked at Sun Microsystems, and has a reputation for being challenging. This class is a live presentation of the presenter’s well-received video training on the same topic. In it, you’ll have the chance to augment your learning by asking questions and discussing details with other learners in the Group Chat.

It’s probably fair to observe that a majority of programmers work from day to day with just a little more knowledge of the languages they work with than is needed to get their immediate job done. We tend to learn new features when existing code uses them. While undeniably pragmatic, it’s beneficial to have a more solid understanding than this, and even if you aren’t pursuing the certification, this class can be beneficial in providing that.

Register for OCA Java SE 8 Programmer Certification Crash Course, Part 2 on January 23-24, 2108

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.


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.

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.

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

The schedule will work through the certification objectives, starting with those that are generally less well-known, taking time as needed to answer questions. As a result, the timing is estimated and subject to significant variation in any particular presentation. By leaving the easier or more familiar objectives to the end, if the number of questions on earlier topics result in the class being short on time, only less important material would be missed.

The exam’s detailed objectives are listed below grouped by the class days, and the expected order on which the material will be addressed. The order and the day-by-day grouping is subject to variation influenced by participants interactions.

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

Day 2

  • 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
  • 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

Day 3

  • 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
  • Create and use for loops including the enhanced for loop
  • Create and use do/while loops
  • Compare loop constructs
  • Use break and continue

Day 4

  • Create if and if/else and ternary constructs
  • Use a switch statement
  • Define the structure of a Java class
  • Create executable Java applications with a 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