Why Study with PlanetCert?
The Latest Questions
Practice questions and exam topics aligned with the current exam objectives.
Detailed Explanations
Go beyond the answer. Master the material with comprehensive learning and professional explanations for every concept.

AI-Powered Insights
Personalized preparation guidance that adapts to your performance and identifies weak spots automatically.
Exam Information
Official specifications published by Oracle
Exam Format
Registration
Validity
1Z0-808 Exam Topics and Domains
1Z0-808 is organized into 9 weighted domains.
Java Basics
Scope of Variables
Define the scope of variables
Java Class Structure
Define the structure of a Java class
Java Applications and Main Method
- Create executable Java applications with a main method
- Run a Java program from the command line
- Produce console output
Package Imports
Import other Java packages to make them accessible in your code
Java Features and Components
Compare and contrast the features and components of Java such as: platform independence, object orientation, encapsulation, etc.
Working With Java Data Types
Variable Declaration and Initialization
Declare and initialize variables (including casting of primitive data types)
Object Reference vs Primitive Variables
Differentiate between object reference variables and primitive variables
Object Fields
Know how to read or write to object fields
Object Lifecycle
Explain an Object's Lifecycle (creation, "dereference by reassignment" and garbage collection)
Wrapper Classes
Develop code that uses wrapper classes such as Boolean, Double, and Integer
Using Operators and Decision Constructs
Java Operators
- Use Java operators
- use parentheses to override operator precedence
Testing Equality
Test equality between Strings and other objects using == and equals()
If and Ternary Constructs
Create if and if/else and ternary constructs
Switch Statement
Use a switch statement
Creating and Using Arrays
One-Dimensional Arrays
Declare, instantiate, initialize and use a one-dimensional array
Multi-Dimensional Arrays
Declare, instantiate, initialize and use multi-dimensional arrays
Using Loop Constructs
While Loops
Create and use while loops
For Loops
Create and use for loops including the enhanced for loop
Do-While Loops
Create and use do/while loops
Loop Comparison and Control
- Compare loop constructs
- Use break and continue
Working with Methods and Encapsulation
Methods with Arguments and Return Values
- Create methods with arguments and return values
- including overloaded methods
Static Keyword
Apply the static keyword to methods and fields
Constructors
- Create and overload constructors
- differentiate between default and user defined constructors
Access Modifiers
Apply access modifiers
Encapsulation
Apply encapsulation principles to a class
Parameter Passing
Determine the effect upon object references and primitive values when they are passed into methods that change the values
Working with Inheritance
Inheritance Concepts
Describe inheritance and its benefits
Polymorphism and Method Overriding
- 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
Casting
Determine when casting is necessary
Super and This Keywords
Use super and this to access objects and constructors
Abstract Classes and Interfaces
Use abstract classes and interfaces
Handling Exceptions
Exception Categories
Differentiate among checked exceptions, unchecked exceptions, and Errors
Try-Catch Blocks
Create a try-catch block and determine how exceptions alter normal program flow
Exception Handling Benefits
Describe the advantages of Exception handling
Throwing Exceptions
Create and invoke a method that throws an exception
Common Exception Classes
Recognize common exception classes (such as NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException)
Working with Selected classes from the Java API
StringBuilder Class
Manipulate data using the StringBuilder class and its methods
String Class
Create and manipulate Strings
Date and Time API
Create and manipulate calendar data using classes from java.time.LocalDateTime, java.time.LocalDate, java.time.LocalTime, java.time.format.DateTimeFormatter, java.time.Period
ArrayList Class
Declare and use an ArrayList of a given type
Lambda Expressions
Write a simple Lambda expression that consumes a Lambda Predicate expression
How do I earn this certification?
Passing 1Z0-808 earns the Oracle Certified Associate, Java SE 8 Programmer certification. It sits in the Java SE 8 track.
- 1Z0-809 - Java SE 8 Programmer II
- 1Z0-819 - Java SE 11 DeveloperJava 11 eliminated OCA level, goes directly to OCP
- 1Z0-829 - Java SE 17 DeveloperLatest LTS version as of 2025
- 1Z0-830 - Java SE 21 Developer ProfessionalNewest Java version certification
- 1Z0-811 - Java FoundationsEntry-level exam for complete beginners
- 1Z0-900 - Java EE 7 Application DeveloperEnterprise Java development path
Practice with Precision
The PlanetCert Simulator mirrors the real exam environment with authentic questions and timed pressure.
How to study for this exam?
Use the official PlanetCert Practice Test alongside the study plan below to prepare efficiently for 1Z0-808.
What's changed on this exam?
- ACTIVE
- Last content update: 2014
- Lambda Expressions Java SE 8 Core topic in 1Z0-808 - first time functional programming required for OCA • Release date: 2014-03-18
- Date and Time API (java.time) Java SE 8 Replaces old Date/Calendar API - tested extensively in 1Z0-808 • Release date: 2014-03-18
- Stream API Java SE 8 Not covered in 1Z0-808 (OCA level), appears in 1Z0-809 (OCP level) • Release date: 2014-03-18
Who should take this exam?
This exam is typically taken by Entry-level Java developers and Students learning Java programming.
- Understanding of basic programming concepts
- Familiarity with object-oriented programming
- Basic knowledge of Java syntax