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
Skills this practice test covers
- Define variable scope and class structure, and run a Java program with a main method from the command line.
- Declare primitives and object references, cast values and follow an object's lifecycle to garbage collection.
- Compare Strings with == and equals(), and write if/else, ternary and switch statements.
- Declare one-dimensional and multi-dimensional arrays, and loop over them with for, enhanced for and do/while loops.
- Overload methods and constructors, apply access modifiers and static members, and override inherited methods.
- Handle checked and unchecked exceptions, and use StringBuilder, LocalDate, ArrayList and a Predicate lambda.
Explore related topics
1z0-808 exam content
9 domains · 0 topics · 432 questions
Java Basics
This domain covers what every Java program needs: a class, a main method, imports and variables with the right scope. It also asks candidates to compare Java's features and components, such as platform independence and encapsulation.
Skills tested
- Identify where a local, instance or class variable can be used.
- Write a main method that runs from the command line and prints to the console.
- Import packages so that their classes are available in code.
- Explain platform independence, object orientation and encapsulation in Java.
Working With Java Data Types
This domain separates primitive variables from object references. Candidates declare and cast values, read and write object fields, and say when an object can be garbage collected.
Skills tested
- Declare and initialize variables, including casts between primitive types.
- Tell what changes when an object reference is copied instead of a primitive value.
- Find the point where an object becomes eligible for garbage collection.
- Use wrapper classes such as Boolean, Double and Integer.
Using Operators and Decision Constructs
Candidates predict the result of an expression and choose the branch that runs. The domain covers operator precedence, equality tests between objects, if/else, the ternary operator and switch.
Skills tested
- Work out an expression's value from operator precedence and parentheses.
- Compare Strings and other objects with == and equals().
- Write if, if/else and ternary constructs, and trace fall-through in a switch statement.
Creating and Using Arrays
This domain covers declaring, creating and filling arrays of one or more dimensions. Using arrays correctly also means knowing their length, default element values and index bounds.
Skills tested
- Declare, instantiate and initialize a one-dimensional array.
- Build and read a multi-dimensional array, including one whose rows have different lengths.
Using Loop Constructs
This domain is about repeating work. Candidates write while, do/while, for and enhanced for loops, compare them, and control them with break and continue.
Skills tested
- Pick the loop that fits a task, and know that a do/while body runs at least once.
- Iterate over an array or an ArrayList with the enhanced for loop.
- Change the flow of a loop with break and continue.
Working with Methods and Encapsulation
This domain covers how a class offers its behavior. Candidates write overloaded methods and constructors, use static members, apply access modifiers and hide fields behind methods.
Skills tested
- Create methods with arguments and return values, including overloaded methods.
- Tell a default constructor from a user-defined one, and overload constructors.
- Apply public, protected, package-private and private access.
- Predict what a method can change when it receives a primitive or an object reference.
Working with Inheritance
This domain is about class hierarchies. Candidates override methods, use polymorphism, cast between types, and work with abstract classes and interfaces.
Skills tested
- Separate the type of a reference from the type of the object it points to.
- Override methods, and reach parent constructors and methods with super.
- Decide when a cast is needed, and when it fails at runtime.
- Use abstract classes and interfaces.
Handling Exceptions
This domain covers what happens when code fails. Candidates sort checked exceptions, unchecked exceptions and Errors, write try-catch blocks and trace how an exception changes the flow of a program.
Skills tested
- Classify an exception as checked, unchecked or an Error.
- Write a try-catch block and trace which code runs after an exception.
- Declare and call a method that throws an exception.
- Recognize NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException and ClassCastException.
Working with Selected classes from the Java API
This domain covers the library classes a new Java programmer uses most. Candidates change String and StringBuilder data, work with java.time dates, store items in an ArrayList and write a simple lambda.
Skills tested
- Change text with StringBuilder methods such as append, insert and delete.
- Create and format dates with LocalDate, LocalTime, LocalDateTime, DateTimeFormatter and Period.
- Declare and use an ArrayList of a given type.
- Write a simple lambda expression for a Predicate.
Requirements
- No formal prerequisites: anyone can book the exam.
- Recommended: comfort with basic programming ideas and object-oriented design.
- Recommended: six months or more of hands-on Java work.
About the 1z0-808 exam
1z0-808 tests whether a programmer can read and write core Java SE 8 code. It is Oracle's Java SE 8 Programmer I exam and the first step on Oracle's Java SE 8 certification path. Its nine domains cover class structure, data types, operators, loops, arrays, methods, inheritance and exceptions, plus API classes such as String, StringBuilder, ArrayList and java.time. One objective asks for a simple lambda expression, which Java 8 introduced. A pass leads to Oracle Certified Associate, Java SE 8 Programmer.
Each explanation in the PlanetCert practice test points to the line of code or the language rule that decides the answer. One example is == between two String objects, which compares references, not text. Study Mode suits Working with Inheritance, where the type of a reference and the type of its object can lead to different results. Flashcard Mode helps with the common exception classes, such as ClassCastException and ArrayIndexOutOfBoundsException. Brainy AI Assistant can explain why a variable is out of scope in a block, or which overloaded method Java picks for a call.
How to earn the certification
- Earns
- Oracle Certified Associate, Java SE 8 ProgrammerAssociate
The certification does not expire.
- Before
- 1Z0-811 Java Foundations Associate
Optional. Oracle's entry-level Java exam for people who are new to programming.
- 1Z0-811 Java Foundations Associate
- After
- 1Z0-830 Java SE 21 Developer Professional
Oracle's professional-level Java exam for Java SE 21, taken as a single exam.
- 1Z0-830 Java SE 21 Developer Professional
How to prepare for 1z0-808
- 1
Compile without an IDE
Write small programs in a text editor and build them with javac and java. Running a program from the command line is an objective, and reading compiler errors without help builds the habit that code questions need.
- 2
Read Oracle's code assumptions
Oracle's exam page explains how to read sample code: missing imports are assumed to exist, code fragments have working support code, and descriptive comments are taken at face value. Knowing these rules saves time on non-issues.
- 3
Draw references and objects
For the data type and method domains, sketch each variable and the object it points to. The sketch shows when an object becomes eligible for garbage collection and what a method can change for its caller.
- 4
Code each API objective
Use String, StringBuilder, LocalDate with Period and DateTimeFormatter, ArrayList and a Predicate lambda in short programs. Predict each output before running the code.
- 5
Close with timed rounds
Work through the 1z0-808 practice test one domain at a time in Study Mode, then take full runs in Timed Mode. Ask Brainy AI Assistant about any explanation that does not yet make sense.
Start a timed 1z0-808run
Oracle recommends the Java SE 8 Programmer - Associate learning path on Oracle MyLearn for this exam.
Who 1z0-808 is for
- Students who are learning Java and want their first Oracle certification.
- Junior developers whose employers ask for proof of core Java SE 8 skills.
- Career changers who are moving into Java development from another field.
- Developers who plan to go on to Java SE 8 Programmer II and the professional level.
Typical job titles: Junior Java developer · Java programmer · Software developer · Application developer · Backend developer
1z0-808 glossary
18 terms from the exam objectives and the vendor's official material, each defined in a sentence.
- Access modifiers
- The keywords public, protected and private, plus the default package-private level, that control which code can use a class member.
- Autoboxing
- Java's automatic conversion of a primitive value into its wrapper object, such as an int into an Integer.
- Checked exceptions
- Exceptions that the compiler forces code to catch, or to declare with a throws clause.
- ClassCastException
- The runtime exception thrown when code casts an object to a type that the object does not have.
- Default constructor
- The no-argument constructor that the compiler adds when a class declares no constructor of its own.
- Dereference by reassignment
- Making an object unreachable by pointing its only reference at another object or at null.
- Encapsulation
- Keeping a class's fields private and giving other code access only through the class's methods.
- Enhanced for loop
- A for loop that visits each element of an array or collection in turn, without an index variable.
- Garbage collection
- The automatic process that frees the memory of objects that no live reference points to any more.
- Lambda expression
- Compact code made of parameters, an arrow and a body, which Java treats as an implementation of a functional interface.
- LocalDate
- A java.time class that holds a date, such as a birthday, without a time of day or a time zone.
- Method overloading
- Several methods in one class with the same name but different parameter lists.
- Method overriding
- A subclass replacing an inherited method with its own version that has the same signature.
- Polymorphism
- One reference type pointing to objects of different subclasses, with each object running its own version of a method.
- Predicate
- A functional interface whose test method takes one value and returns true or false.
- StringBuilder
- A class for text that can change in place, unlike a String, which cannot change after it is created.
- Ternary operator
- The ?: operator, which picks one of two values from a condition in a single expression.
- Wrapper classes
- Classes such as Integer, Double and Boolean that hold a primitive value as an object.