Java SE 8 Programmer II study materials
Java SE 8 Programmer II study resources

Java SE 8 Programmer II study guide

Java SE 8 Programmer II · Work through your exam, one topic at a time.

The Java SE 8 Programmer II credential (exam code 1Z0-809, often called OCP Java SE 8) is Oracle's professional-level certification for developers who already write Java and want to prove they can build real applications with the Java SE 8 platform. It is aimed at working programmers, bootcamp graduates, and backend engineers who are comfortable with core syntax and want to demonstrate fluency in the features that define modern Java: lambdas, streams, the Date/Time API, NIO.2, concurrency utilities, and JDBC. The Java SE 8 Programmer II study guide has 12 sections and about 3,722 words.

01

Java Class Design

Java Class Design tests your ability to build legal inheritance hierarchies, apply encapsulation, and predict polymorphic behavior. Questions often ask which override compiles, what a constructor call dispatches to, or how access modifiers constrain an override.

364 words, about 2 min
02

Advanced Java Class Design

Advanced Java Class Design covers nested and inner classes, enums, interface evolution with default and static methods, and design choices such as composition, immutability, and singletons. A static nested class is instantiated as Outer.Nested n = new Outer.Nested(); ; it has no implicit outer instance.

321 words, about 2 min
03

Generics and Collections

Generics and Collections tests compile-time type safety, wildcard use, and choosing the right collection with correct equality and ordering contracts. Generic types are invariant: List<Integer is not a List<Number .

311 words, about 2 min
04

Lambda Built-in Functional Interfaces

Lambda Built-in Functional Interfaces covers the java.util.function package, target typing, method references, and composing lambdas. Supplier<T : T get() .

287 words, about 1 min
05

Java Stream API

Java Stream API tests building lazy pipelines, choosing intermediate versus terminal operations, and collecting results correctly. A stream has a source, zero or more intermediate operations ( filter , map , flatMap , distinct , sorted , peek , limit , skip ), and one terminal operation ( forEach , collect , reduce , count , anyMatch , findFirst , min , max ).

323 words, about 2 min
06

Exceptions and Assertions

Exceptions and Assertions tests checked versus unchecked exceptions, resource management, custom exceptions, and the correct use of assertions. Throwable splits into Error (unrecoverable) and Exception .

321 words, about 2 min
07

Using the Java I/O API

Using the Java I/O API tests byte and character streams, buffering, serialization, and correct resource handling in java.io . Byte streams ( InputStream / OutputStream ) handle binary data; character streams ( Reader / Writer ) handle text and charset conversion.

293 words, about 1 min
08

Concurrency

Concurrency tests thread creation, synchronization, visibility, executors, and concurrent collections. Create a thread by extending Thread and overriding run() , or by passing a Runnable to Thread .

311 words, about 2 min
09

Building Database Applications with JDBC

Building Database Applications with JDBC tests connections, statements, result sets, transactions, and resource cleanup. DriverManager.getConnection(url, user, password) returns a Connection .

304 words, about 2 min
10

Localization

Localization tests Locale , resource bundles, formatting, and locale-sensitive parsing. A Locale has language, country, and optional variant; Locale.forLanguageTag("en-US") uses BCP 47 tags.

293 words, about 1 min
11

Java File I/O (NIO.2)

Java File I/O (NIO.2) tests path manipulation, file operations, directory traversal, and attribute handling with java.nio.file . Path is an immutable sequence of name elements; create it with Paths.get("dir", "file.txt") .

319 words, about 2 min
12

Java Date/Time API

Java Date/Time API tests the immutable java.time types, arithmetic, formatting, and time-zone behavior. LocalDate , LocalTime , and LocalDateTime have no time zone; ZonedDateTime and OffsetDateTime do; Instant is a UTC point on the timeline.

275 words, about 1 min