If you're using a book that covers the SCJP/OCJP 6, also see OCAJP7andOCPJP7vsOCJP6 and OCAJP7andOCPJP7vsOCJP6
7 and 8, there were only a few new topics (and some re-ordering of topics in the objectives) THere are also a few language changes to be aware of:
OCA 8 Objective | OCP 8 Text | OCA 7 Objective |
---|
| Java Basics | |
1.1 | Define the scope of variables | 1.1 |
1.2 | Define the structure of a Java class | 1.2 |
1.3 | Create executable Java applications with a main method; run a Java program from the command line; including console output. | 1.3 + new topic |
1.4 | Import other Java packages to make them accessible in your code | 1.4 |
1.5 | Compare and contrast the features and components of Java such as: platform independence, object orientation, encapsulation, etc. | n/a - new topic |
| Working With Java Data Types | |
2.1 | Declare and initialize variables (including casting of primitive data types) | 2.1 |
2.2 | Differentiate between object reference variables and primitive variables | 2.2 |
2.3 | Know how to read or write to object fields | 2.3 |
2.4 | Explain an Object's Lifecycle (creation, "dereference by reassignment" and garbage collection) | 2.4 |
2.5 | Use call methods on user-created wrapper class objects (grammatical error reported to Oracle - think this means primitive wrappers | n/a - new topic |
| Using Operators and Decision Constructs  | |
3.1 | Use Java operators; including parentheses to override operator precedence | 3.1, 3.2 |
3.3 | Test equality between Strings and other objects using == and equals () | 3.3 |
3.4 | Create if and if/else constructs and ternary constructs | 3.4 |
3.5 | Use a switch statement | 3.5 |
| Creating and Using Arrays | |
4.1 | Declare, instantiate, initialize and use a one-dimensional array | 4.1 |
4.2 | Declare, instantiate, initialize and use multi-dimensional array | 4.2 |
| Using Loop Constructs | |
5.1 | Create and use while loops | 5.1 |
5.2 | Create and use for loops including the enhanced for loop | 5.2 |
5.3 | Create and use do/while loops | 5.3 |
5.4 | Compare loop constructs | 5.4 |
5.5 | Use break and continue  | 5.5 |
| Working with Methods and Encapsulation | |
6.1 | Create methods with arguments and return values; including overloaded methods | 6.1, 6.3 |
6.2 | Apply the static keyword to methods and fields  | 6.2 |
6.5 | Create and overload constructors; including impact on default constructors | 6.4, 6.5 |
6.6 | Apply access modifiers | 6.6 |
6.7 | Apply encapsulation principles to a class | 6.7 |
6.8 | Determine the effect upon object references and primitive values when they are passed into methods that change the values | 6.8 |
| Working with Inheritance | |
7.1 | Describe the hierarchy of implementing inheritance | 7.1 |
7.2 | Develop code that demonstrates the use of polymorphism | 5.2 |
7.3 | Differentiate between the type of a reference and the type of an object; including overriding and object type versus reference type | 7.2, 7.3 |
7.4 | Determine when casting is necessary | 7.4 |
7.5 | Use super and this to access objects and constructors | 7.5 |
7.6 | Use abstract classes and interfaces | 7.6 |
| Handling Exceptions | |
8.1 | Differentiate among checked exceptions, RuntimeExceptions and Errors | 8.1 |
8.2 | Create a try-catch block and determine how exceptions alter normal program flow | 8.2 |
8.3 | Describe the advantages of Exception handling | 8.3 |
8.4 | Invoke a method that throws an exception | 8.4 |
8.5 | Recognize common exception classes (such as NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException) | 8.5 |
| Working with Selected Classes from the Java API | |
9.1 | Manipulate data using the StringBuilder class and its methods | 2.6 |
9.2 | Creating and manipulating Strings | 2.7 |
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 | n/a - new topic |
9.4 | Declare and use an ArrayList of a given type | 4.3 |
9.5 | Write a simple Lambda expression that consumes a Lambda Predicate expression | n/a - new topic |
OCA 7 Objective | OCA 7 Text | OCA 8 Objective |
---|
| Java Basics | |
1.1 | Define the scope of variables | 1.1 |
1.2 | Define the structure of a Java class | 1.2 |
1.3 | Create executable Java applications with a main method | 1.3 |
1.4 | Import other Java packages to make them accessible in your code | 1.4 |
| Working With Java Data Types | |
2.1 | Declare and initialize variables | 2.1 |
2.2 | Differentiate between object reference variables and primitive variables | 2.2 |
2.3 | Read or write to object fields | 2.3 |
2.4 | Explain an Object's Lifecycle (creation, "dereference" and garbage collection) | 2.4 |
2.5 | Call methods on objects | implied in objectives 6.X |
2.6 | Manipulate data using the StringBuilder class and its methods | 9.1 |
2.7 | Creating and manipulating Strings | 9.2 |
| Using Operators and Decision Constructs  | |
3.1 | Use Java operators | 3.1 |
3.2 | Use parenthesis to override operator precedence | 3.1 |
3.3 | Test equality between Strings and other objects using == and equals () | 3.2 |
3.4 | Create if and if/else constructs | 3.3 |
3.5 | Use a switch statement | 3.4 |
| Creating and Using Arrays | |
4.1 | Declare, instantiate, initialize and use a one-dimensional array | 4.1 |
4.2 | Declare, instantiate, initialize and use multi-dimensional array | 4.2 |
4.3 | Declare and use an ArrayList | 9.4 |
| Using Loop Constructs | |
5.1 | Create and use while loops | 5.1 |
5.2 | Create and use for loops including the enhanced for loop | 5.2 |
5.3 | Create and use do/while loops | 5.3 |
5.4 | Compare loop constructs | 5.4 |
5.5 | Use break and continue  | 5.5 |
| Working with Methods and Encapsulation | |
6.1 | Create methods with arguments and return values | 6.1 |
6.2 | Apply the static keyword to methods and fields  | 6.2 |
6.3 | Create an overloaded method | 6.1 |
6.4 | Differentiate between default and user defined constructors | 6.3 |
6.5 | Create and overload constructors | 6.3 |
6.6 | Apply access modifiers | 6.4 |
6.7 | Apply encapsulation principles to a class | 6.5 |
6.8 | Determine the effect upon object references and primitive values when they are passed into methods that change the values | 6.6 |
| Working with Inheritance | |
7.1 | Implement inheritance | 7.1 |
7.2 | Develop code that demonstrates the use of polymorphism | 7.2 |
7.3 | Differentiate between the type of a reference and the type of an object | 7.2 |
7.4 | Determine when casting is necessary | 7.3 |
7.5 | Use super and this to access objects and constructors | 7.4 |
7.6 | Use abstract classes and interfaces | 7.5 |
| Handling Exceptions | |
8.1 | Differentiate among checked exceptions, RuntimeExceptions and Errors | 2.5 |
8.2 | Create a try-catch block and determine how exceptions alter normal program flow | 2.4 |
8.3 | Describe what Exceptions are used for in Java | 2.5 |
8.4 | Invoke a method that throws an exception | 2.4 |
8.5 | Recognize common exception classes and categories | 2.6 |