Object-Oriented Programming
Classes and Objects
Analyze class blueprint specifications, heap allocations, and reference stack pointer controls.
Constructors
Analyze default vs parameterized constructors, constructor chaining via this and super, and initialization block execution sequences.
this Keyword
Analyze the usage of the this reference keyword to resolve field shadowing, chain constructors, and pass contexts.
Access Modifiers
Deconstruct Java's four visibility levels (public, protected, package-private, private) and encapsulation rules.
static Keyword
Analyze class-level static variables and methods, static block initialization, and memory locations.
final Keyword
Analyze final variables (primitives vs references), final class inheritance blocks, and compile-time constant folding optimizations.
Instance vs Static
Contrast heap instance variable allocations with Metaspace static metadata declarations and thread safety.
Nested Classes
Contrast Static Nested classes with non-static Inner classes, tracking enclosing instance reference leaks.
Anonymous Classes
Analyze local subclassing on the fly, closure variables capture rules, and effectively final constraints.
Object Class
Analyze the root of the Java class hierarchy, object clone mechanics, and the deprecation of finalize.
equals() and hashCode()
Deconstruct the equivalence contract (reflexive, symmetric, transitive), hash collision costs, and HashMap bucket resolutions.
toString() Method
Analyze default hexadecimal string formats, string concatenation triggers, and debugging print requirements.
Immutable Classes
Analyze the recipe for immutability: final classes, final private fields, and defensive copying.