Oracle Java Foundations study materials
Oracle Java Foundations study resources

Oracle Java Foundations study plan

Oracle Java Foundations · Give each week a clear focus.

8 weeks · About 7 hours per week

Week 1

Java Basics & Working with Java Data Types

  • Write, compile, and run a Java class from the command line without an IDE, narrating what javac and java each do

  • Declare and initialize variables of all eight primitive types and state the default value of each when used as a field

  • Differentiate local, instance, and static variables by writing one class that uses all three and predicting the output

  • Convert between primitives and wrapper types using autoboxing and parse text with Integer.parseInt and Double.parseDouble

  • Find and fix five injected compile errors caused by incompatible types, missing casts, or uninitialized locals

Your checkpoint

A one-page cheat sheet of primitive sizes, ranges, and defaults plus a 20-question self-quiz scored at 80% or higher

Week 2

Using Operators and Decision Constructs & Creating and Using Arrays

  • Predict the output of expressions that mix arithmetic, integer division, increment/decrement, compound assignment, and the ternary operator

  • Write if / else-if / else chains and switch statements (including a String switch) that behave correctly at boundary values

  • Declare, initialize, and traverse one-dimensional, two-dimensional, and jagged arrays

  • Apply Arrays.sort, Arrays.toString, and System.arraycopy to a working example

  • Diagnose and repair an ArrayIndexOutOfBoundsException in a supplied snippet and explain the off-by-one cause

Your checkpoint

A working program that stores a jagged 2D array of scores, sorts each row, and prints it, plus a 15-question operator/array quiz scored at 80% or higher

Week 3

Using Loop Constructs

  • Rewrite the same logic as a for loop, a while loop, a do-while loop, and an enhanced for loop

  • Use break, labeled break, and continue to control nested loop execution

  • Hand-trace loop execution in a table and predict the final counter value before running the code

  • Choose correctly between a while loop and a do-while loop by identifying guaranteed-first-iteration cases

Your checkpoint

A trace table for three loop snippets plus one program that prints a multiplication table and a star triangle using nested loops

Week 4

Working with Methods and Encapsulation

  • Write three overloaded methods and explain which one the compiler selects for each call

  • Pass a primitive and an object reference to methods and predict which caller variables change

  • Encapsulate a class with private fields and public getters/setters that enforce validation rules

  • Distinguish static from instance members and use both correctly in one class

Your checkpoint

A BankAccount class with a private balance, validated deposit and withdraw methods, and a static account counter, with a tester class, plus a timed 30-question mock on domains 1-5 scored at 75% or higher

Week 5

Working with Inheritance

  • Create a superclass/subclass pair and override a method, verifying the @Override annotation compiles

  • Chain constructors with this() and super() and trace the order of constructor execution

  • Write a side-by-side comparison of overloading versus overriding

  • Assign a subclass instance to a supertype variable and invoke the overridden method to demonstrate polymorphism

  • Use instanceof before downcasting and list which members are visible through a supertype reference

Your checkpoint

A three-class Shape / Circle / Rectangle hierarchy with overridden area(), stored in a Shape array and printed polymorphically, plus a 15-question inheritance quiz scored at 80% or higher

Week 6

Handling Exceptions

  • Classify six named exception types as checked or unchecked and justify each

  • Write try / catch / finally blocks and predict output when finally contains a return statement

  • Use multi-catch and try-with-resources in a program that handles two exception types at once

  • Define a custom exception, throw it from a validation method, and declare it with throws

  • Handle a propagated checked exception at the call site rather than swallowing it

Your checkpoint

A program that validates an age, throws a custom InvalidAgeException when out of range, and always logs a message from finally, plus a 15-question exception quiz scored at 80% or higher

Week 7

Working with Selected Classes from the Java API

  • Predict the output of string operations using length, substring, indexOf, replace, equals, and compareTo

  • Choose between String and StringBuilder for a loop that concatenates 10,000 times and justify the choice in two sentences

  • Add, get, remove, iterate, and report the size of a generic ArrayList

  • Create a LocalDate, add days to it, and format it with DateTimeFormatter

  • Use Math and wrapper utility methods such as Math.max and Integer.valueOf correctly

Your checkpoint

A 40-line program that splits a CSV line into an ArrayList, formats a LocalDate, and prints a report, plus a 20-question API quiz scored at 80% or higher

Week 8

Working with Selected Classes from the Java API & Handling Exceptions

  • Re-solve every question missed in weeks 1-7 and record the underlying rule behind each miss

  • Complete two full-length timed mocks under exam conditions

  • State the top 20 trap rules from memory, including integer division, == versus equals, array length versus String length(), and finally overriding a return

  • Rank personal weak domains by mock error count and drill only the top two

Your checkpoint

An error log in which 100% of previously missed items are re-solved correctly, plus two mock scores at 80% or higher

Milestones

Week 4: Score 75% or higher on a timed 30-question mock covering domains 1-5, and submit a working BankAccount class that rejects a negative deposit with a clear message

Week 7: Score 80% or higher on each of the week 5, 6, and 7 quizzes, and produce a polymorphic Shape array whose output proves the overridden method was called

Week 8: Achieve 80% or higher on two full-length timed mocks spanning all nine domains, with zero unresolved items in the error log