1Z0-771 study guide
1Z0-771 · Work through your exam, one topic at a time.
The Oracle Certified Professional: Java SE 21 Developer credential (exam code 1Z0-771) is Oracle's professional-level certification for programmers who build and maintain Java applications on the Java SE 21 platform. It is aimed at developers with real working experience in Java who want formal recognition of advanced language and API skills, and it is commonly sought by backend engineers, enterprise application developers, and anyone whose job involves modernizing code for a long-term-support release. The 1Z0-771 study guide has 9 sections and about 3,111 words.
01Java Fundamentals and Data Types
Domain 1 tests whether you can read a short snippet and decide whether it compiles and what it prints: primitive widths, literal syntax, promotion and casting, var , arrays, and String equality. Eight primitives: byte (8 bits), short (16), int (32), long (64), float (32), double (64), char (16, unsigned), boolean .
407 words, about 2 min02Controlling Program Flow and Exception Handling
Domain 2 covers branching, loops, and the checked/unchecked exception model: which catch blocks are reachable, when finally runs, and how try-with-resources closes resources. if requires a boolean ; Java has no integer truthiness.
345 words, about 2 min03Object-Oriented Programming: Classes, Inheritance, Interfaces, and Records
Domain 3 tests encapsulation, inheritance mechanics, interface rules and polymorphism: what compiles, what is overridden versus hidden, and the order in which constructors and initializers run. Access order: private < package-private (no modifier) < protected < public .
373 words, about 2 min04Generics and Collections
Domain 4 tests type erasure, wildcard variance, and collection contracts: which implementation to choose, what happens with duplicate keys, and when iteration throws ConcurrentModificationException . Generics exist only at compile time; erasure removes type arguments, so List<String and List<Integer share one runtime class.
355 words, about 2 min05Lambdas, Streams, and Functional Interfaces
Domain 5 tests functional interfaces, method references, and the lazy/eager split in a Stream pipeline: which operations are intermediate, which are terminal, and what actually executes. A functional interface has exactly one abstract method; @FunctionalInterface makes the compiler enforce that.
345 words, about 2 min06Concurrency and Multithreading
Domain 6 tests thread lifecycle, safe publication, and the java.util.concurrent toolkit: how to start work, how to stop it cleanly, and which classes remove the need for hand-written synchronization. Create with Thread or Runnable ; start() launches a new thread, while run() merely executes on the current thread.
325 words, about 2 min07I/O, NIO.2, and Serialization
Domain 7 tests the java.io stream hierarchy, the java.nio.file path API, and the serialization contract: which classes are byte- versus character-oriented, and what makes an object serializable. Byte streams ( InputStream / OutputStream ) handle binary data; character streams ( Reader / Writer ) handle text with a charset.
318 words, about 2 min08Modules and the Module System
Domain 8 tests the module descriptor: how requires , exports and opens change compilation, runtime resolution, and reflective access. module-info.java sits at the source root: module com.example.app { requires java.sql; exports com.example.api; } .
315 words, about 2 min09Annotations, Reflection, and Date/Time API
Domain 9 tests three APIs that frequently appear together: custom annotation definitions, reflective inspection, and the immutable java.time model. Declare with @interface ; elements are methods, optionally with default values.
328 words, about 2 min