Oracle Java Foundations study plan
Oracle Java Foundations · Give each week a clear focus.
8 weeks · About 7 hours per week
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
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
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
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
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
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
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
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