[✔️] [ 1A ] Use primitives and wrapper classes, including, operators, parentheses, type promotion and casting
[✔️] [ 1B ] Handle text using String and StringBuilder classes
[✔️] [ 1C ] The Number and Character Classes
[✔️] [ 1D ] Use local variable type inference, including as lambda parameters
[✔️] [ 2A ] Create and use loops, if/else, and switch statements
[✔️] [ 01 ] Core Concepts Behind Java OOP
[✔️] [ 02 ] Classes
[✔️] [ 03 ] Garbage Collection
[✔️] [ 04 ] Static Initialization Block
[✔️] [ 05 ] Nested Classes
[✔️] [ 3A ] Declare and instantiate Java objects including nested class objects, and explain objects' lifecycles (including creation, dereferencing by reassignment, and garbage collection)
[✔️] [ 3B ] Define and use fields and methods, including instance, static and overloaded methods
[✔️] [ 3C ] Initialize objects and their members using instance and static initialiser statements and constructors
[✔️] [ 3D ] Understand variable scopes, apply encapsulation and make objects immutable
- [ 3E ] Create and use subclasses and superclasses, including abstract classes
- [ 3F ] Utilize polymorphism and casting to call methods, differentiate object type versus reference type
- [ 3G ] Create and use interfaces, identify functional interfaces, and utilize private, static, and default methods
[✔️] [ 3H ] Create and use enumerations
- [ 4A ] Handle exceptions using try/catch/finally clauses, try-with-resource, and multi-catch statements
- [ 4B ] Create and use custom exceptions
- [ 5A ] Use generics, including wildcards
- [ 5B ] Use a Java array and List, Set, Map and Deque collections, including convenience methods
- [ 5C ] Sort collections and arrays using Comparator and Comparable interfaces
- [ 6A ] Implement functional interfaces using lambda expressions, including interfaces from the java.util.function package
- [ 6B ] Use Java Streams to filter, transform and process data
- [ 6C ] Perform decomposition and reduction, including grouping and partitioning on sequential and parallel streams
- [ 7A ] Deploy and execute modular applications, including automatic modules
- [ 7B ] Declare, use, and expose modules, including the use of services
- [ 8A ] Create worker threads using Runnable and Callable, and manage concurrency using an ExecutorService and java.util.concurrent API
- [ 8B ] Develop thread-safe code, using different locking mechanisms and java.util.concurrent API
- [ 9A ] Read and write console and file data using I/O Streams
- [ 9B ] Implement serialization and deserialization techniques on Java objects
- [ 9C ] Handle file system objects using java.nio.file API
- [ 10A ] Develop code that mitigates security threats such as denial of service, code injection, input validation and ensure data integrity
- [ 10B ] Secure resource access including filesystems, manage policies and execute privileged code
- [ 11A ] Connect to and perform database SQL operations, process query results using JDBC API
- [ 12A ] Implement Localization using Locale, resource bundles, and Java APIs to parse and format messages, dates, and numbers
- [ 13A ] Create, apply, and process annotations