Topics
Your first Java program and the JVM
Understand class, main, compilation to bytecode and the JVM.
Variables and data types
Use primitive types and know their sizes and defaults.
Operators and Scanner input
Read input and compute with operators.
Conditions and switch
Branch with if/else and the switch statement.
Loops
Use for, while, do-while and enhanced for.
Arrays
Create and process 1D and 2D arrays.
Strings, immutability and StringBuilder
See why String is immutable and when to use StringBuilder.
Methods and pass-by-value
Write methods and see that Java passes copies of references.
Classes and objects
Create objects with new and see references on the stack and objects on the heap.
Constructors and this
Initialise objects with constructors and use this.
static members
Know the difference between per-object and shared class data.
Encapsulation
Hide data with private fields and expose getters/setters.
Inheritance
Reuse code with extends and super.
Polymorphism: overloading and overriding
Same method name, different behaviour at compile time and runtime.
Abstract classes and interfaces
Define contracts with abstract classes and interfaces.
Exception handling
Use try/catch/finally, throw and custom exceptions.
ArrayList
Use a resizable list and know how it grows.
HashMap and HashSet
Store key-value pairs and unique items; see how hashing buckets work.
Generics
Write type-safe classes and methods.
Lambdas and Streams
Process collections with lambdas, filter, map and collect.
Multithreading basics
Run tasks in parallel and see race conditions and synchronized.
Memory, null and garbage collection
Understand references, null and how GC frees unreachable objects.
Mini project: bank management
Combine OOP, collections and exceptions.