Object-Oriented Programming
The four pillars, equals/hashCode, immutability, SOLID, GoF design patterns, and modern Java 25 OOP (records, sealed classes, pattern matching). About 30% of any senior Java interview.
Four Pillars: Encapsulation, Inheritance, Polymorphism, Abstraction
The conceptual foundation interviewers test in the first 5 minutes — definitions, code examples, and the real-world reason each pillar exists.
Classes, Constructors & Initialization Order
How constructors chain, what `this()` and `super()` mean, and the precise order in which static fields, instance fields, blocks, and constructors execute.
Inheritance, super, and Method Overriding
How overriding actually works on the JVM — dispatch tables, the @Override contract, covariant returns, and the difference between overriding and hiding.
Abstract Classes vs Interfaces (Post Java 8)
After default methods landed, the line blurred. Where it still matters: state, constructors, multiple inheritance, evolution.
Polymorphism in Practice
Dynamic dispatch, the difference between reference type and runtime type, and how to refactor `if/instanceof` chains into polymorphic code.
Access Modifiers & Encapsulation
public/protected/package-private/private, how each interacts with inheritance and the module system, and why fields should almost never be public.
equals, hashCode, toString — the Object Contract
The contract every Java dev must internalize and the inheritance trap that breaks symmetry. Overlaps with the Collections module but lives here too as core OOP.
Inner Classes — Static Nested, Inner, Local, Anonymous, Lambdas
Four kinds of inner classes, what each can capture, when to pick which, and how lambdas relate.
Immutability & Defensive Copying
The recipe for a truly immutable class, why defensive copies are required at the boundary, and where records do (and don't) get it right.
Composition vs Inheritance
"Favor composition" — the most-cited Effective Java item. When inheritance still belongs, and how to use forwarding to wrap instead of extend.
SOLID Principles
The five principles — definition, a one-line interview hook each, a violation example, and the refactor.
Creational Design Patterns
Singleton, Factory Method, Abstract Factory, Builder, Prototype — what each solves and when not to use it.
Structural Design Patterns
Adapter, Decorator, Proxy, Facade, Composite — how each composes objects to add capability without inheritance.
Behavioral Design Patterns
Strategy, Observer, Template Method, Command, Iterator, State, Chain of Responsibility — how objects coordinate behavior.
Modern OOP — Records, Sealed Classes, Pattern Matching (Java 14–25)
Records as data carriers, sealed hierarchies for exhaustive `switch`, pattern matching for destructuring. The shape of post-Java-21 OOP.
Low-Level Design Practice
How to walk a 45-minute LLD round: requirements → use cases → class diagram → key classes → patterns → trade-offs.