This exam is obsolete. See the
11 exam came out, I created a wiki page comparing the objectives to highlight what changed. This was helpful for those studying from a OCA 7 for the OCP 8 exam. However, the OCP 11 part 1 is a profressional level exam. It is harder and covers objectivies more deeply. Using an OCA 8 book to study won't work. This wiki page still shows the mapping of objectives at least.
Note: Oracle makes changes to the objectives. These Java 11 objectives are as of when the exam launched and may vary slightly from the latest. The gist is the same.
OCP 11 Part 1 Objective | OCP 11 Part 1 Text | OCA 8 Objective |
---|
| Understanding Java Technology and environment | |
1.1 | Identify key features of the Java language | 1.5 |
1.2 | Describe Java Technology and the Java development environment | 1.5 |
| Creating a Simple Java Program |
2.1 | Create an executable Java program with a main class | 1.3 |
2.2 | Compile and run a Java program from the command line | 1.3 |
2.3 | Create and import packages | 1.4 |
| Working With Java Primitive Data Types and String APIs |
3.1 | Declare and initialize variables (including casting and promoting primitive data types) | 2.1, 2.2, 6.6 |
3.2 | Identify the scope of variables | 1.1 |
3.3 | Use local variable type inference | New topic |
3.4 | Create and manipulate Strings | 9.2 |
3.5 | Manipulate data using the StringBuilder class and its methods | 9.1 |
| Using Operators and Decision Constructs |
4.1 | Use Java operators including the use of parenthesis to override operator precedence | 3.1 |
4.2 | Use Java control statements including if, else, break and continue | 3.3, 5.5 |
4.3 | Create and use do/while loops, while loop, and for looping statements including nested loops | 5.1, 5.2, 5.3, 5.4 |
| Working with Java Arrays |
5.1 | Declare, instantiate, initialize and use a one-dimensional array | 4.1 |
5.2 | Declare, instantiate, initialize and use a two-dimensional array | 4.2 |
| Describing Objects and Classes |
6.1 | Declare and instantiate Java objects, and explain objects' lifecycles (including creation, dereferencing by reassignment, and garbage collection) | 2.4 |
6.2 | Define the structure of a Java class | 1.2 |
6.3 | Read or write to object fields | 2.3 |
| Creating and Using Methods |
7.1 | Create methods and constructors with arguments and return values | 6.1, 6.3 |
7.2 | Create and invoke overloaded methods | 9.5 |
7.3 | Apply the static keyword to methods and fields | 6.3 |
| Applying Encapsulation |
8.1 | Apply access modifiers | 6.6 |
8.2 | Apply encapsulation principles to a class | 6.7 |
| Reusing Implementations Through Inheritance |
9.1 | Create and use subclasses and superclasses | 7.1, 7.2, 7.3, 7.4, 7.5 |
9.2 | Create and extend abstract classes | 7.6 |
9.3 | Enable polymorphism by overriding methods | 7.1, 7.2, 7.3, 7.4, 7.5 |
9.4 | Utilize polymorphism to cast and call methods, differentiating object type versus reference type | 7.1, 7.2, 7.3, 7.4, 7.5 |
9.5 | Distinguish overloading, overriding, and hiding | 7.2 |
| Programming Abstractly Through Interfaces |
10.1 | Create and implement interfaces | 7.6 |
10.2 | Distinguish class inheritance from interface inheritance including abstract classes | 7.6 |
10.3 | Declare and use List and ArrayList instances | 9.4 |
10.4 | Understanding lambda Expressions | 9.5 |
| Handling Exceptions |
11.1 | Describe the advantages of Exception handling and differentiate among checked exceptions, unchecked exceptions, and Errors | 8.1 and 8.3 |
11.2 | Create a try-catch block and determine how exceptions alter normal program flow | 8.2 |
11.3 | Create and invoke a method that throws an exception | 8.4 |
| Understanding Modules |
12.1 | Describe the Modular JDK | New topic |
12.2 | Declare modules and enable access between modules | New topic |
12.3 | Describe how a modular project is compiled and run | New topic |
OCA 8 Objective | OCP 8 Text | OCP 11 Part 1 Objective |
---|
| Java Basics | |
1.1 | Define the scope of variables | 3.2 |
1.2 | Define the structure of a Java class | 6.2 |
1.3 | Create executable Java applications with a main method; run a Java program from the command line; including console output. | 2.1, 2.2 |
1.4 | Import other Java packages to make them accessible in your code | 2.3 |
1.5 | Compare and contrast the features and components of Java such as: platform independence, object orientation, encapsulation, etc. | 1.1, 1.2 |
| Working With Java Data Types | |
2.1 | Declare and initialize variables (including casting of primitive data types) | 3.1 |
2.2 | Differentiate between object reference variables and primitive variables | 2.1 |
2.3 | Know how to read or write to object fields | 6.3 |
2.4 | Explain an Object's Lifecycle (creation, "dereference by reassignment" and garbage collection) | 6.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 | 4.1 |
3.2 | Test equality between Strings and other objects using == and equals () | No longer in objectives |
3.3 | Create if and if/else constructs and ternary constructs | 4.2 (ternary no longer in objectives) |
3.4 | Use a switch statement | No longer in objectives |
| Creating and Using Arrays | |
4.1 | Declare, instantiate, initialize and use a one-dimensional array | 5.1 |
4.2 | Declare, instantiate, initialize and use multi-dimensional array | 5.2 |
| Using Loop Constructs | |
5.1 | Create and use while loops | 4.3 |
5.2 | Create and use for loops including the enhanced for loop | 4.3 |
5.3 | Create and use do/while loops | 4.3 |
5.4 | Compare loop constructs | 4.3 |
5.5 | Use break and continue | 4.2 |
| Working with Methods and Encapsulation | |
6.1 | Create methods with arguments and return values; including overloaded methods | 7.1 |
6.2 | Apply the static keyword to methods and fields | 7.3 |
6.3 | Create and overload constructors; including impact on default constructors | 7.1 |
6.4 | Apply access modifiers | 8.1 |
6.5 | Apply encapsulation principles to a class | 8.2 |
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 | 9.1, 9.3, 9.4 |
7.2 | Develop code that demonstrates the use of polymorphism | 9.1, 9.3, 9.4 |
7.3 | Differentiate between the type of a reference and the type of an object; including overriding and object type versus reference type | 9.1, 9.3, 9.4 |
7.4 | Determine when casting is necessary | 9.1, 9.3, 9.4 |
7.5 | Use super and this to access objects and constructors | 9.1, 9.3, 9.4 |
7.6 | Use abstract classes and interfaces | 9.2, 10.1, 10.2 |
| Handling Exceptions | |
8.1 | Differentiate among checked exceptions, RuntimeExceptions and Errors | 11.1 |
8.2 | Create a try-catch block and determine how exceptions alter normal program flow | 11.2 |
8.3 | Describe the advantages of Exception handling | 11.1 |
8.4 | Invoke a method that throws an exception | 11.3 |
8.5 | Recognize common exception classes (such as NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException) | No longer in objectives |
| Working with Selected Classes from the Java API | |
9.1 | Manipulate data using the StringBuilder class and its methods | 3.5 |
9.2 | Creating and manipulating Strings | 3.4 |
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 | 10.3 |
9.5 | Write a simple Lambda expression that consumes a Lambda Predicate expression | 10.4 |