Certification Part IIJ8 Home « Certification Part II
This section of the site covers the requirements for the Java SE 8 Programmer II Exam (IZO-809) which when passed gives the Oracle Certified Professional, Java SE 8 Programmer certification.
We will cover the twelve topic areas of the exam as described at Oracle Java SE 8 Programmer II and categorized by the certification lessons listed and summarized below:
Java Class Design
- 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.
Generics and Collections
- 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.
Java Stream API
- 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.
Use Java SE 8 Date/Time API
- 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.
Java File I/O (NIO.2)
- 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.
Build Database Applications with JDBC
- Build 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.
Advanced Java Class Design
- 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.
Lambda Built-in Functional Interfaces
- 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 interfaces.
Exceptions and Assertions
- 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.
Java I/O Fundamentals
- 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..
Java Concurrency
- 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.
Localization
- 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.