The biggest differences are that the Junior exam is not a valid pre-req for the OCP exam. The OCA covers many of the same objectives as the Junior Associate. The Junior Associate covers a few topics that are not on the regular OCA:
OCA 8 Objective | OCP 8 Text | Java Foundations Junior Associate Coverage |
Java Basics |
1.1 | Define the scope of variables | not on junior associate exam |
1.2 | Define the structure of a Java class | 2.3 |
1.3 | Create executable Java applications with a main method; run a Java program from the command line; including console output. | 2.4 |
1.4 | Import other Java packages to make them accessible in your code | 3.4 |
1.5 | Compare and contrast the features and components of Java such as: platform independence, object orientation, encapsulation, etc. | 1.1 |
Working With Java Data Types |
2.1 | Declare and initialize variables (including casting of primitive data types) | 4.1 |
2.2 | Differentiate between object reference variables and primitive variables | not on junior associate exam |
2.3 | Know how to read or write to object fields | 12.3, 12.4 |
2.4 | Explain an Object's Lifecycle (creation, "dereference by reassignment" and garbage collection) | not on junior associate exam |
2.5 | Develop code that uses wrapper classes such as Boolean, Double, and Integer. | implied in 11.2 |
Using Operators and Decision Constructs � |
3.1 | Use Java operators; including parentheses to override operator precedence | 5.1, 5.2, 5.3, 5.4, 5.5, 5.6 |
3.3 | Test equality between Strings and other objects using == and equals () | 8.3, 8.4 |
3.4 | Create if and if/else constructs and ternary constructs | 8.1 |
3.5 | Use a switch statement | 8.2 |
Creating and Using Arrays |
4.1 | Declare, instantiate, initialize and use a one-dimensional array | 11.1 |
4.2 | Declare, instantiate, initialize and use multi-dimensional array | not on junior associate exam |
Using Loop Constructs |
5.1 | Create and use while loops | 9.3 |
5.2 | Create and use for loops including the enhanced for loop | 9.4 |
5.3 | Create and use do/while loops | 9.4 |
5.4 | Compare loop constructs | 9.1, 9.5 |
5.5 | Use break and continue � | 9.6 |
Working with Methods and Encapsulation |
6.1 | Create methods with arguments and return values; including overloaded methods | 13.1, 13.3 |
6.2 | Apply the static keyword� to methods and fields � | 13.4 |
6.5 | Create and overload constructors; including impact on default constructors | 12.5,12.6,12.7 |
6.6 | Apply access modifiers | 12.2 (private only) |
6.7 | Apply encapsulation principles to a class | 13.2 |
6.8 | Determine the effect upon object references and primitive values when they are passed� into methods that change the values | not on junior associate exam |
Working with Inheritance |
7.1 | Describe the hierarchy of implementing inheritance | not on junior associate exam |
7.2 | Develop code that demonstrates the use of polymorphism | not on junior associate exam |
7.3 | Differentiate between the type of a reference and the type of an object; including overriding and object type versus reference type | not on junior associate exam |
7.4 | Determine when casting is necessary | 4.2 |
7.5 | Use super and this to access objects and constructors | not on junior associate exam |
7.6 | Use abstract classes and interfaces | not on junior associate exam |
Handling Exceptions |
8.1 | Differentiate among checked exceptions, RuntimeExceptions and Errors | 10.3 |
8.2 | Create a try-catch block and determine how exceptions alter normal program flow | 10.1,10.4 |
8.3 | Describe the advantages of Exception handling | 10.2 |
8.4 | Invoke a method that throws an exception | 10.1,10.4 |
8.5 | Recognize common exception classes (such as NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException) | 10.3 |
Working with Selected Classes from the Java API |
9.1 | Manipulate data using the StringBuilder class and its methods | not on junior associate exam |
9.2 | Creating and manipulating Strings | 4.3,6.1 |
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 | not on junior associate exam |
9.4 | Declare and use an ArrayList of a given type | 11.2, 11.3, 11.4 |
9.5 | Write a simple Lambda expression that consumes a Lambda Predicate expression | not on junior associate exam |
Java Junior Associate 8 Objective | Text | OCA 8 Coverage |
What Is Java? |
1.1 | Describe the features of Java | 1.5 |
1.2 | Describe the real-world applications of Java | not on OCA |
Java Basics |
2.1 | Describe the Java Development Kit (JDK) and the Java Runtime Environment (JRE) | not on OCA |
2.3 | Describe the components of object-oriented programming | 1.2 |
2.3 | Describe the components of a basic Java program | i1.2 |
2.4 | Compile and execute a Java program | 1.3 |
Basic Java Elements |
3.1 | Identify the conventions to be followed in a Java program | Implied in other OCA objectives |
3.2 | Use Java reserved words | Implied in other OCA objectives |
3.3 | Use single-line and multi-line comments in Java programs | Implied in other OCA objectives |
3.4 | Import other Java packages to make them accessible in your code | 1.4 |
3.5 | Describe the java.lang package |
Working with Java Data Types |
4.1 | Declare and initialize variables including a variable using final | 2.1 |
4.2 | Cast a value from one data type to another including automatic and manual promotion | 7.4 |
4.3 | Declare and initialize a String variable | 9.2 |
Working with Java Operator |
5.1 | Use basic arithmetic operators to manipulate data including +, -, *, /, and % | 3.1 |
5.2 | Use the increment and decrement operators | 3.1 |
5.3 | Use relational operators including ==, !=, >, >=, <, and <= | 3.1 |
5.4 | Use arithmetic assignment operators | 3.1 |
5.5 | Use conditional operators including &&, pipes and ? | 3.1 |
5.6 | Describe the operator precedence and use of parenthesis | 3.1 |
Working with the String Class |
6.1 | Develop code that uses methods from the String class | 9.2 |
6.2 | Format Strings using escape sequences including %d, %n, and %s | not on OCA |
Working with the Random and Math Classes |
7.1 | Use the Random class | not on OCA |
7.2 | Use the Math class | not on OCA |
Using Decision Statements |
8.1 | Use the decision making statement (if-then and if-then-else) | 3.4 |
8.2 | Use the switch statement | 3.5 |
8.3 | Compare how == differs between primitives and objects | 3.3 |
8.4 | Compare two String objects by using the compareTo and equals methods | 3.3 (compareTo is not on OCA) |
Using Looping Statements |
9.1 | Describe looping statements | 5.4 |
9.2 | Use a for loop including an enhanced for loop | 5.2 |
9.3 | Use a while loop | 5.1 |
9.4 | Use a do- while loop | 5.3 |
9.5 | Compare and contrast the for, while, and do-while loops | 5.4 |
9.6 | Develop code that uses break and continue statements | 5.5 |
Debugging and Exception Handling |
10.1 | Identify syntax and logic errors | 8.2, 8.4 |
10.2 | Use exception handling | 8.3 |
10.3 | Handle common exceptions thrown | 8.1, 8.5 |
10.4 | Use try and catch blocks | 8.2, 8.4 |
Arrays and ArrayLists |
11.1 | Use a one-dimensional array | 4.1 |
11.2 | Create and manipulate an ArrayList | 2.5,9.4 |
11.3 | Traverse the elements of an ArrayList by using iterators and loops including the enhanced for loop | 9.4 (iterators isn't on the OCA) |
11.4 | Compare an array and an ArrayList | 9.4 |
Classes and Constructors |
12.1 | Create a new class including a main method | Implied in other OCA objectives |
12.2 | Use the private modifier | 6.6 |
12.3 | Describe the relationship between an object and its members | 2.3 |
12.4 | Describe the difference between a class variable, an instance variable, and a local variable | 2.3 |
12.5 | Develop code that creates an object's default constructor and modifies the object's fields | 6.5 |
12.6 | Use constructors with and without parameters | 6.5 |
12.7 | Develop code that overloads constructors | 6.5 |
Java Methods |
13.1 | Describe and create a method | 6.1 |
13.2 | Create and use accessor and mutator methods | 6.7 |
13.3 | Create overloaded methods | 6.1 |
13.4 | Describe a static method and demonstrate its use within a program | 6.2 |