| Section | Weight | Objectives |
| Controlling Program Flow | 10% | - Use if and if/else statements - Use for, while, and do/while loops - Use break and continue statements - Use switch statements - Use Java control statements
|
| I/O (Fundamentals and NIO2) | 7% | - Read and write console and file input/output using Java I/O system - Use NIO2 API to work with file systems and file attributes - Use Stream API with files - Use Path interface to manipulate file paths
|
| Annotations | 5% | - Apply standard annotations to classes and methods - Create custom annotations - Describe the purpose of annotations
|
| Secure Coding in Java SE Application | 5% | - Prevent SQL injection and other attacks - Prevent Denial of Service (DoS) attacks - Validate user input - Secure sensitive data
|
| Java Platform Module System | 10% | - Declare module dependencies - Explain the concept of module exports and requires - Explain the default modules and class path - Deploy and execute modules - Use jdeps to determine dependencies - Migrate applications to use modules
|
| Working with Java OOP | 15% | - Use abstract classes and interfaces - Implement encapsulation - Apply the static keyword to methods and fields - Implement inheritance - Implement polymorphism - Apply the final keyword to classes, methods, and fields - Create inner classes and use them within other classes
|
| Working with Java data types | 12% | - Create and manipulate strings - Declare and initialize variables - Read or write to object fields - Differentiate between object reference variables and primitive variables - Call methods on objects - Explain an object's lifecycle (creation, dereferencing via garbage collection) - Manipulate data using the StringBuilder class and its methods
|
| Working with Arrays and Collections | 8% | - Iterate through a collection - Create a list, set, map, or queue collection - Sort elements in a collection - Search for elements in a collection - Filter a collection using lambda expressions - Use generic types and diamond operator
|
| Database Applications with JDBC | 5% | - Execute queries and process results - Connect to a database using JDBC - Use parameterized queries - Describe the advantages of using a connection pool
|
| Exception Handling and Localization | 10% | - Use standard exception classes - Create try-catch blocks and understand exception propagation - Describe the advantages of exception handling - Create and throw custom exceptions - Use assertions - Use resource bundles and locale classes for internationalization
|
| Working with Streams and Lambda expressions | 13% | - Describe the Stream interface and pipeline - Perform decomposition using the reduce(), collect(), partition(), and groupingBy() methods - Use functional interfaces with lambda expressions - Use method references with streams - Filter a collection using lambda expressions - Use the Stream API to perform terminal operations
|
| Concurrency | 10% | - Use synchronized blocks and the volatile keyword - Create worker threads using Runnable and Thread objects - Use parallel streams to improve performance - Use ExecutorService to concurrently execute tasks - Identify potential threading problems - Use java.util.concurrent atomic classes and ForkJoinPool
|