The Java SE 8 Programmer II (1Z0-809) is an advanced certification exam designed for individuals who have a thorough understanding of Java Standard Edition 8 (SE 8). This certification tests the ability to implement object-oriented programming concepts, use Java APIs for data structures, handle exceptions, work with Java streams, and apply functional programming principles. It is part of Oracle's certification path for Java developers and builds on the foundational knowledge covered in Java SE 8 Programmer I (1Z0-808). Why is Java SE 8 Programmer II (1Z0-809) important?
Demonstrates advanced proficiency in Java SE 8, a widely-used programming language.
Validates the ability to apply object-oriented design principles in Java.
Strengthens knowledge of Java APIs such as collections, streams, and concurrency.
Ensures that candidates can work with lambda expressions and functional interfaces.
Highlights mastery in exception handling, generics, and modular programming.
Prepares individuals for senior-level Java development roles in the industry.
Enhances employability by showcasing advanced Java programming skills.
Who should take the Java SE 8 Programmer II (1Z0-809) Exam?
Java Developers
Software Engineers
Back-End Developers
Full-Stack Developers
Android Developers
Software Architects
System Engineers working with Java applications
Skills Evaluated
Candidates taking the certification exam on the Java SE 8 Programmer II (1Z0-809) is evaluated for the following skills:
Advanced object-oriented programming concepts
Use of Java collections, generics, and lambda expressions
Implementing functional programming principles
Working with streams and parallel streams for data processing
Exception handling and custom exceptions
Multithreading and concurrency management
Using Java input/output (I/O) and file handling
Knowledge of Java modularity, encapsulation, and access control
Understanding of JDBC and database interaction with Java
Java SE 8 Programmer II (1Z0-809) Certification Course Outline
The Java SE 8 Programmer II (1Z0-809) Certification covers the following topics -
Module 1. Java Class Design
Implement encapsulation
Implement inheritance including visibility modifiers and composition
Implement polymorphism
Override hashCode, equals, and toString methods from Object class
Create and use singleton classes and immutable classes
Develop code that uses static keyword on initialize blocks, variables, methods, and classes
Module 2. Advanced Java Class Design
Develop code that uses abstract classes and methods
Develop code that uses the final keyword
Create inner classes including static inner class, local class, nested class, and anonymous inner class
Use enumerated types including methods, and constructors in an enum type
Develop code that declares, implements and/or extends interfaces and use the @Override annotation.
Create and use Lambda expressions
Module 3. Generics and Collections
Create and use a generic class
Create and use ArrayList, TreeSet, TreeMap, and ArrayDeque objects
Use java.util.Comparator and java.lang.Comparable interfaces
Collections Streams and Filters
Iterate using forEach methods of Streams and List
Describe Stream interface and Stream pipeline
Filter a collection by using lambda expressions
Use method references with Streams
Module 4. Lambda Built-in Functional Interfaces
Use the built-in interfaces included in the java.util.function package such as Predicate, Consumer, Function, and Supplier
Develop code that uses primitive versions of functional interfaces
Develop code that uses binary versions of functional interfaces
Develop code that uses the UnaryOperator interface
Module 5. Java Stream API
Develop code to extract data from an object using peek() and map() methods including primitive versions of the map() method
Search for data by using search methods of the Stream classes including findFirst, findAny, anyMatch, allMatch, noneMatch
Develop code that uses the Optional class
Develop code that uses Stream data methods and calculation methods
Sort a collection using Stream API
Save results to a collection using the collect method and group/partition data using the Collectors class
Use flatMap() methods in the Stream API
Module 6. Exceptions and Assertions
Use try-catch and throw statements
Use catch, multi-catch, and finally clauses
Use Autoclose resources with a try-with-resources statement
Create custom exceptions and Auto-closeable resources
Test invariants by using assertions
Module 7. Use Java SE 8 Date/Time API
Create and manage date-based and time-based events including a combination of date and time into a single object using LocalDate, LocalTime, LocalDateTime, Instant, Period, and Duration
Work with dates and times across timezones and manage changes resulting from daylight savings including Format date and times values
Define and create and manage date-based and time-based events using Instant, Period, Duration, and TemporalUnit
Module 8. Java I/O Fundamentals
Read and write data from the console
Use BufferedReader, BufferedWriter, File, FileReader, FileWriter, FileInputStream, FileOutputStream, ObjectOutputStream, ObjectInputStream, and PrintWriter in the java.io package.
Module 9. Java File I/O (NIO.2)
Use Path interface to operate on file and directory paths
Use Files class to check, read, delete, copy, move, manage metadata of a file or directory
Use Stream API with NIO.2
Module 10. Java Concurrency
Create worker threads using Runnable, Callable and use an ExecutorService to concurrently execute tasks
Identify potential threading problems among deadlock, starvation, livelock, and race conditions
Use synchronized keyword and java.util.concurrent.atomic package to control the order of thread execution
Use java.util.concurrent collections and classes including CyclicBarrier and CopyOnWriteArrayList
Use parallel Fork/Join Framework
Use parallel Streams including reduction, decomposition, merging processes, pipelines and performance.
Module 11. Building Database Applications with JDBC
Describe the interfaces that make up the core of the JDBC API including the Driver, Connection, Statement, and ResultSet interfaces and their relationship to provider implementations
Identify the components required to connect to a database using the DriverManager class including the JDBC URL
Submit queries and read results from the database including creating statements, returning result sets, iterating through the results, and properly closing result sets, statements, and connections
Module 12. Localization
Read and set the locale by using the Locale object
Create and read a Properties file
Build a resource bundle for each locale and load a resource bundle in an application