- https://education.oracle.com/java-25th-anniversary-discount-redemption
- https://www.selikoff.net/ocp11-complete/
- https://docs.oracle.com/en/java/javase/11/
- https://enthuware.com/java-certification-mock-exams/oracle-certified-professional/ocp-java-11-exam-1z0-819
- https://learn.oracle.com/ols/learning-path/java-explorer/40805/79726
- Modern Java Collections
- https://learning.oreilly.com/live-training/courses/java-11-certification-1z0-819-exam-cram/0636920053300/
- Functional Java for Big Data
- Advanced Java Development
- Java 8 and 9 Fundamentals: Modern Java Development with Lambdas, Streams, and Introducing Java 9โs JShell and the Java Platform Module System (JPMS)
- Functional Programming For Java LiveLessons
- Oracle University - Java SE 11 New Features
- Oracle University - Java SE 9 & 10 New Features
- Use primitives and wrapper classes, including, operators, parentheses, type promotion and casting
- Handle text using String and StringBuilder classes
- Use local variable type inference, including as lambda parameters
- Create and use loops, if/else, and switch statements
- Declare and instantiate Java objects including nested class objects, and explain objects' lifecycles (including creation, dereferencing by reassignment, and garbage collection)
- Define and use fields and methods, including instance, static and overloaded methods
- Initialize objects and their members using instance and static initialiser statements and constructors
- Understand variable scopes, apply encapsulation and make objects immutable
- Create and use subclasses and superclasses, including abstract classes
- Utilize polymorphism and casting to call methods, differentiate object type versus reference type
- Create and use interfaces, identify functional interfaces, and utilize private, static, and default methods
- Create and use enumerations
- Handle exceptions using try/catch/finally clauses, try-with-resource, and multi-catch statements
- Create and use custom exceptions
- Use generics, including wildcards
- Use a Java array and List, Set, Map and Deque collections, including convenience methods
- Sort collections and arrays using Comparator and Comparable interfaces
- Implement functional interfaces using lambda expressions, including interfaces from the java.util.function package
- Use Java Streams to filter, transform and process data
- Perform decomposition and reduction, including grouping and partitioning on sequential and parallel streams
- Deploy and execute modular applications, including automatic modules
- Declare, use, and expose modules, including the use of services
- Create worker threads using Runnable and Callable, and manage concurrency using an ExecutorService and java.util.concurrent API
- Develop thread-safe code, using different locking mechanisms and java.util.concurrent API
- Read and write console and file data using I/O Streams
- Implement serialization and deserialization techniques on Java objects
- Handle file system objects using java.nio.file API
- Develop code that mitigates security threats such as denial of service, code injection, input validation and ensure data integrity
- Secure resource access including filesystems, manage policies and execute privileged code
- Connect to and perform database SQL operations, process query results using JDBC API
- Implement Localization using Locale, resource bundles, and Java APIs to parse and format messages, dates, and numbers
- Create, apply, and process annotations