OCP 11 819 Objective | OCP 11 819 Text | Java 8 Objective |
Working with Java data types | ||
1.1 | Use primitives and wrapper classes, including, operators, parentheses, type promotion and casting | 808 (2.1, 2.2, 3.1) |
1.2 | Handle text using String and StringBuilder classes | 808 (3.2, 9.1, 9.2), 809 (1.4) |
1.3 | Use local variable type inference, including as lambda parameters | |
Controlling Program Flow | ||
2.1 | Create and use loops, if/else, and switch statements | 808 (3.3, 3.4, 5.1, 5.2, 5..3, 5.4, 5.5) |
Java Object-Oriented Approach | ||
3.1 | Declare and instantiate Java objects including nested class objects, and explain objects' lifecycles (including creation, dereferencing by reassignment, and garbage collection) | 808 (1.2, 1.4, 2.4, 6.1, 6.2, 6.3, 6.6), 809 (1.6, 2.3, 2.5) |
3.2 | Define and use fields and methods, including instance, static and overloaded methods | 808 (2.3), 809 (1.6) |
3.3 | Initialize objects and their members using instance and static initialiser statements and constructors | |
3.4 | Understand variable scopes, apply encapsulation and make objects immutable | 808 (1.1, 3.4, 3.5), 809 (1.1, 1.2, 1.5) |
3.5 | Create and use subclasses and superclasses, including abstract classes | 808 (6.1, 7.1, 7.5, 7.6), 809 (2.1, 2.2) |
3.6 | Utilize polymorphism and casting to call methods, differentiate object type versus reference type | 808 ( 7.1, 7.2, 7.3, 7.4), 809(1.3) |
3.7 | Create and use interfaces, identify functional interfaces, and utilize private, static, and default methods | 808 (7.7) |
3.8 | Create and use enumerations | 809 (2.4) |
Exception Handling | ||
4.1 | Handle exceptions using try/catch/finally clauses, try-with-resource, and multi-catch statements | 808 (8.1, 8.2, 8.3, 8.4, 8.5), 809 (6.1, 6.2, 6.3) |
4.2 | Create and use custom exceptions | 809 (6.4) |
Working with Arrays and Collections | ||
5.1 | Use generics, including wildcards | 809 (3.1) |
5.2 | Use a Java array and List, Set, Map and Deque collections, including convenience methods | 808 (4.1, 4.2, 9.4), 809 (3.2, 3.5) |
5.3 | Sort collections and arrays using Comparator and Comparable interfaces | 808 (4.1), 809 (3.3) |
Working with Streams and Lambda expressions | ||
6.1 | Implement functional interfaces using lambda expressions, including interfaces from the java.util.function package | 808 (9.5), 809 (1.4, 2.6, 3.8, 4.1,, 4.2, 4.3, 4.4, 5.1, 5.2) |
6.2 | Use Java Streams to filter, transform and process data | 809 (3.4, 3.5, 3.6, 3.7, 5.5, 5.7) |
6.3 | Perform decomposition and reduction, including grouping and partitioning on sequential and parallel streams | 809 (5.3, 5.4, 5.6, 5.7, 10.6) |
Java Platform Module System | ||
7.1 | Deploy and execute modular applications, including automatic modules | new topic |
7.2 | Declare, use, and expose modules, including the use of services | new topic |
Concurrency | ||
8.1 | Create worker threads using Runnable and Callable, and manage concurrency using an ExecutorService and java.util.concurrent API | 809 (10.1) |
8.2 | Develop thread-safe code, using different locking mechanisms and java.util.concurrent API | 809 (10.2, 10.4) |
Java I/O API | ||
9.1 | Read and write console and file data using I/O Streams | 809 (8.1, 8.2) |
9.2 | Implement serialization and deserialization techniques on Java objects | new topic |
9.3 | Handle file system objects using java.nio.file API | 809 (9.1, 9.2, 9.3) |
Secure Coding in Java SE Application | ||
10.1 | Develop code that mitigates security threats such as denial of service, code injection, input validation and ensure data integrity | new topic |
10.2 | Secure resource access including filesystems, manage policies and execute privileged code | new topic |
Database Applications with JDBC | ||
11.1 | Connect to and perform database SQL operations, process query results using JDBC API | (809 )11.1, 11.2, 11.3) |
Annotations | ||
12.1 | Create, apply, and process annotations | new topic |
Localization | ||
13.1 | Implement Localization using Locale, resource bundles, and Java APIs to parse and format messages, dates, and numbers | 809 (12.2, 12.4) |
OCA 8 Objective | OCA 8 Text | OCP 11 819 Objective |
---|---|---|
Java Basics | ||
1.1 | Define the scope of variables | 3.4 |
1.2 | Define the structure of a Java class | 3.1 |
1.3 | Create executable Java applications with a main method; run a Java program from the command line; including console output. | n/a |
1.4 | Import other Java packages to make them accessible in your code | 3.1 |
1.5 | Compare and contrast the features and components of Java such as: platform independence, object orientation, encapsulation, etc. | n/a |
Working With Java Data Types | ||
2.1 | Declare and initialize variables (including casting of primitive data types) | 1.1 |
2.2 | Differentiate between object reference variables and primitive variables | 1.1 |
2.3 | Know how to read or write to object fields | 3.2 |
2.4 | Explain an Object's Lifecycle (creation, "dereference by reassignment" and garbage collection) | 3.1 |
2.5 | Use call methods on user-created wrapper class objects | No longer on exam |
Using Operators and Decision Constructs | ||
3.1 | Use Java operators; including parentheses to override operator precedence | 1.1 |
3.2 | Test equality between Strings and other objects using == and equals () | 1.2 |
3.3 | Create if and if/else constructs and ternary constructs | 2.1 |
3.4 | Use a switch statement | 2.1 |
Creating and Using Arrays | ||
4.1 | Declare, instantiate, initialize and use a one-dimensional array | 5.2, 5.3 |
4.2 | Declare, instantiate, initialize and use multi-dimensional array | 5.2 |
Using Loop Constructs | ||
5.1 | Create and use while loops | 2.1 |
5.2 | Create and use for loops including the enhanced for loop | 2.1 |
5.3 | Create and use do/while loops | 2.1 |
5.4 | Compare loop constructs | 2.1 |
5.5 | Use break and continue | 2.1 |
Working with Methods and Encapsulation | ||
6.1 | Create methods with arguments and return values; including overloaded methods | 3.1, 3.5 |
6.2 | Apply the static keyword to methods and fields | 3.1 |
6.3 | Create and overload constructors; including impact on default constructors | 3.1 |
6.4 | Apply access modifiers | 3.4 |
6.5 | Apply encapsulation principles to a class | 3.4 |
6.6 | Determine the effect upon object references and primitive values when they are passed into methods that change the values | 3.1 |
Working with Inheritance | ||
7.1 | Describe the hierarchy of implementing inheritance | 3.5, 3.6 |
7.2 | Develop code that demonstrates the use of polymorphism | 3.6 |
7.3 | Differentiate between the type of a reference and the type of an object; including overriding and object type versus reference type | 3.6 |
7.4 | Determine when casting is necessary | 3.6 |
7.5 | Use super and this to access objects and constructors | 3.5, 3.6 |
7.6 | Use abstract classes and interfaces | 3.5, 3.7 |
Handling Exceptions | ||
8.1 | Differentiate among checked exceptions, RuntimeExceptions and Errors | 4.1 |
8.2 | Create a try-catch block and determine how exceptions alter normal program flow | 4.1 |
8.3 | Describe the advantages of Exception handling | 4.1 |
8.4 | Invoke a method that throws an exception | 4.1 |
8.5 | Recognize common exception classes (such as NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException) | 4.1 |
Working with Selected Classes from the Java API | ||
9.1 | Manipulate data using the StringBuilder class and its methods | 1.2 |
9.2 | Creating and manipulating Strings | 1.2 |
9.3 | Create and manipulate calendar data using classes from java.time.LocalDateTime, java.time.LocalDate, java.time.LocalTime, java.time.format.DateTimeFormatter, java.time.Period | No longer in objectives |
9.4 | Declare and use an ArrayList of a given type | 5.2 |
9.5 | Write a simple Lambda expression that consumes a Lambda Predicate expression | 6.1 |
OCPJP 8 Objective | OCPJP 8 Text | OCP 11 819 Objective |
Java Class Design | ||
1.1 | Implement encapsulation | 3.4 |
1.2 | Implement inheritance including visibility modifiers and composition | 3.4 |
1.3 | Implement polymorphism | 3.6 |
1.4 | Override hashCode, equals, and toString methods from Object class | 1.2, 6.1 |
1.5 | Create and use singleton classes and immutable classes | 3.4 (singleton no longer in scope) |
1.6 | Develop code that uses static keyword on initialize blocks, variables, methods, and classes | 3.1, 3.2 |
2.1 | Develop code that uses abstract classes and methods | 3.5 |
2.2 | Develop code that uses final keyword | 3.5 |
2.3 | Create inner classes including static inner class, local class, nested class, and anonymous inner class | 3.1 |
2.4 | Use enumerated types including methods, and constructors in an enum type | 3.8 |
2.5 | Develop code that declares, implements and/or extends interfaces and use the atOverride annotation | 3.1 |
2.6 | Create and use Lambda expressions | 6.1 |
Generics and Collections | ||
3.1 | Create and use a generic class | 5.1 |
3.2 | Create and use ArrayList, TreeSet, TreeMap, and ArrayDeque objects | 5.2 |
3.3 | Use java.util.Comparator and java.lang.Comparable interfaces | 5.3 |
3.4 | Collections Streams and Filters | 6.2 |
3.5 | Iterate using forEach methods of Streams and List | 5.2, 6.2 |
3.6 | Describe Stream interface and Stream pipeline | 6.2 |
3.7 | Filter a collection by using lambda expressions | 6.2 |
3.8 | Use method references with Streams | 6.1 |
Lambda Built-in Functional Interfaces | ||
4.1 | Use the built-in interfaces included in the java.util.function package such as Predicate, Consumer, Function, and Supplier | 6.1 |
4.2 | Develop code that uses primitive versions of functional interfaces | 6.1 |
4.3 | Develop code that uses binary versions of functional interfaces | 6.1 |
4.4 | Develop code that uses the UnaryOperator interface | 6.1 |
Java Stream API | ||
5.1 | Develop code to extract data from an object using peek() and map() methods including primitive versions of the map() method | 6.1 |
5.2 | Search for data by using search methods of the Stream classes including findFirst, findAny, anyMatch, allMatch, noneMatch | 6.1 |
5.3 | Develop code that uses the Optional class | 6.3 |
5.4 | Develop code that uses Stream data methods and calculation methods | 6.3 |
5.5 | Sort a collection using Stream API | 6.2 |
5.6 | Save results to a collection using the collect method and group/partition data using the Collectors class | 6.3 |
5.7 | Use of merge() and flatMap() methods of the Stream API | 6.2, 6.3 |
Exceptions and Assertions | ||
6.1 | Use try-catch and throw statements | 4.1 |
6.2 | Use catch, multi-catch, and finally clauses | 4.1 |
6.3 | Use Autoclose resources with a try-with-resources statement | 4.1 |
6.4 | Create custom exceptions and Auto-closeable resources | 4.2 |
6.5 | Test invariants by using assertions | No longer in objectives |
Use Java SE 8 Date/Time API | ||
7.1 | 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 | No longer in objectives |
7.2 | Work with dates and times across timezones and manage changes resulting from daylight savings including Format date and times values | No longer in objectives |
7.3 | Define and create and manage date-based and time-based events using Instant, Period, Duration, and TemporalUnit | No longer in objectives |
Java I/O Fundamentals | ||
8.1 | Read and write data from the console | 9.1 |
8.2 | Use BufferedReader, BufferedWriter, File, FileReader, FileWriter, FileInputStream, FileOutputStream, ObjectOutputStream, ObjectInputStream, and PrintWriter in the java.io package | 9.1 |
Java File I/O (NIO.2) | ||
9.1 | Use Path interface to operate on file and directory paths | 9.2 |
9.2 | Use Files class to check, read, delete, copy, move, manage metadata of a file or directory | 9.2 |
9.3 | Use Stream API with NIO.2 | 9.2 |
Java Concurrency | ||
10.1 | Create worker threads using Runnable, Callable and use an ExecutorService to concurrently execute tasks | 8.1 |
10.2 | Identify potential threading problems among deadlock, starvation, livelock, and race conditions | 8.2 |
10.3 | Use synchronized keyword and java.util.concurrent.atomic package to control the order of thread execution | No longer in objectives |
10.4 | Use java.util.concurrent collections and classes including CyclicBarrier and CopyOnWriteArrayList | 8.2 |
10.5 | Use parallel Fork/Join Framework | No longer in objectives |
10.6 | Use parallel Streams including reduction, decomposition, merging processes, pipelines and performance | 6.3 |
Building Database Applications with JDBC | ||
11.1 | 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 | 11.1 (Callable Statement no longer on exam) |
11.2 | Identify the components required to connect to a database using the DriverManager class including the JDBC URL | 11.1 |
11.3 | 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 | 11.1 |
Localization | ||
12.1 | Describe the advantages of localizing an application | No longer in objectives |
12.2 | Read and set the locale by using the Locale object | 12.1 |
12.3 | Create and read a Properties file | No longer in objectives |
12.4 | Build a resource bundle for each locale and load a resource bundle in an application | 12.1 |
[OCP 17 book] | [OCP 11 book] | [OCA 8 book] [OCP 8 book] [Practice tests book] [Blog] [JavaRanch FAQ] [How To Ask Questions] [Book Promos]
Other Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, TOGAF part 1 and part 2
Oracle Certification Program normally provides 90 days notice for the retirement of any certification exam.
Edmund Yong wrote:Hi Charles,
I'm sorry to learn that you didn't pass 816. I think you should aim for 819. It doesn't seem to make sense to go for Java 8 certification now. I'm sure this certification will retire soon. So why stress yourself again with another possible deadline? If you go for 819, you can take all the time you need to study. For your info, I have used Java 8 for a few years now as it is the version we use in my company, but I've never used any of the Java 11 features in work.
Charles O'Leary wrote: In other words, do you have a firm commitment from Oracle that they will not retire 809 within the next 6 months?
[OCP 17 book] | [OCP 11 book] | [OCA 8 book] [OCP 8 book] [Practice tests book] [Blog] [JavaRanch FAQ] [How To Ask Questions] [Book Promos]
Other Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, TOGAF part 1 and part 2
Those are the largest trousers in the world! Especially when next to this ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com
|