The Java Foundations Exam 1Z0-811 currently targets Java 8. As such you are better off buying our OCA 8 book and using this page to see what parts of the book to read and a few blog posts as supplemental reading.
If you already purchased our Java 21, you can still use it for Foundations Exam. You just don’t need to read the entire book! With that in mind, the following table helps you know what you need to study for those using our OCP 21 book for the Foundations Exam.
Objective | Topic | How to Study |
---|---|---|
1.1 | Describe the features of Java | Be able to explain the following benefits: object oriented, encapsulation, platform independent, robust, simple, secure, backward compatible. |
1.2 | Describe the real-world applications of Java | Blog post on real world applications of Java |
2.1 | Describe the Java Development Kit (JDK) and the Java Runtime Environment (JRE) | There’s not much to this. The javac command is used to turn .java (source) files into .class (bytecode files). The javac command is part of the JDK. The java command is used to run .class files. It is part of the JRE. The JDK contains the JRE along with debugging tools and more |
2.2 | Describe the components of object-oriented programming | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
2.3 | Describe the components of a basic Java program | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
2.4 | Compile and execute a Java program | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
3.1 | Identify the conventions to be followed in a Java program | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
3.2 | Use Java reserved words | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
3.3 | Use single-line and multi-line comments in Java programs | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
3.4 | Import other Java packages to make them accessible in your code | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
3.5 | Describe the java.lang package | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
4.1 | Declare and initialize variables including a variable using final | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
4.2 | Cast a value from one data type to another including automatic and manual promotion | Read all of chapter 2. This will cover a number of objectives including this one. |
4.3 | Declare and initialize a String variable | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
5.1 | Use basic arithmetic operators to manipulate data including +, -, *, /, and % | Read all of chapter 2. This will cover a number of objectives including this one. |
5.2 | Use the increment and decrement operators | Read all of chapter 2. This will cover a number of objectives including this one. |
5.3 | Use relational operators including ==, !=, >, >=, <, and <= | Read all of chapter 2. This will cover a number of objectives including this one. |
5.4 | Use arithmetic assignment operators | Read all of chapter 2. This will cover a number of objectives including this one. |
5.5 | Use conditional operators including &&, ||, and ? | Read all of chapter 2. This will cover a number of objectives including this one. |
5.6 | Describe the operator precedence and use of parenthesis | Read all of chapter 2. This will cover a number of objectives including this one. |
6.1 | Develop code that uses methods from the String class | Read ch 4’s Creating and Manipulation Strings section |
6.2 | Format Strings using escape sequences including %d, %n, and %s | This is covered in ch 4’s Formatting Values section. It is also covered at Blog post on formatting Strings |
7.1 | Use the Random class | Read ch 5’s Calculating with Math APIs or Blog post on Random and Math |
7.2 | Use the Math class | Read ch 5’s Calculating with Math APIs or Blog post on Random and Math |
8.1 | Use the decision making statement (if-then and if-then-else) | Read Chapter 3’s Creating Decision Making Statements section, skipping pattern matching and flow control. |
8.2 | Use the switch statement | Read Chapter 3’s Building Switch Expressions and Statements section skipping everything that has a return value, -> or yield in it. |
8.3 | Compare how == differs between primitives and objects | Read Chapter 4’s Checking for Equality and Understanding Equality sections |
8.4 | Compare two String objects by using the compareTo and equals methods | Blog post on compareTo |
9.1 | Describe looping statements | Read Chapter 3’s Writing while loops and Constructing for loops sections |
9.2 | Use a for loop including an enhanced for loop | Read Chapter 3’s Constructing for loops section |
9.3 | Use a while loop | Read Chapter 3’s Writing while loops section |
9.4 | Use a do- while loop | Read Chapter 3’s Writing while loops section |
9.5 | Compare and contrast the for, while, and do-while loops | Read Chapter 3’s Writing while loops and Constructing for loops sections |
9.6 | Develop code that uses break and continue statements | Read Chapter 3’s Controlling Flow with Branching section |
10.1 | Identify syntax and logic errors | This is covered as you read about other topics. |
10.2 | Use exception handling | Chapter 11’s Understanding Exceptions section |
10.3 | Handle common exceptions thrown | Chapter 11’s Recognizing Exception Classes section |
10.4 | Use try and catch blocks | Chapter 11’s Using try and catch blocks section |
11.1 | Use a one-dimensional array | Read chapter 4’s Understanding Arrays section skipping comparing, mismatch and multi dimensional arrays |
11.2 | Create and manipulate an ArrayList | Read chapter 9’s Using the List interface |
11.3 | Traverse the elements of an ArrayList by using iterators and loops including the enhanced for loop | Blog post on iterators |
11.4 | Compare an array and an ArrayList | Read chapter 9’s Using the List interface section. |
12.1 | Create a new class including a main method | Read chapter 6’s Creating classes section. |
12.2 | Use the private modifier | Read chapter 6’s Creating classes section. |
12.3 | Describe the relationship between an object and its members | Read chapter 6’s Initializing Objects section. |
12.4 | Describe the difference between a class variable, an instance variable, and a local variable | Read all of chapter 1 except for var, text blocks, and destroying objects. This will cover a number of objectives including this one. |
12.5 | Develop code that creates an object’s default constructor and modifies the object’s fields | Read chapter 6’s Declaring constructors section |
12.6 | Use constructors with and without parameters | Read chapter 6’s Declaring constructors section |
12.7 | Develop code that overloads constructors | Read chapter 6’s Declaring constructors section |
13.1 | Describe and create a method | Read chapter 5’s Designing methods section |
13.2 | Create and use accessor and mutator methods | Accessor methods begin with is or get and return a value. Mutator methods begin with set and store a value. |
13.3 | Create overloaded methods | Read chapter 5’s Overloading methods section. |
13.4 | Describe a static method and demonstrate its use within a program | Read chapter 5’s Accessing static data section |