Methods
Method Declaration
Deconstruct method declarations, signatures, access modifiers, and specific Java modifiers like strictfp or native.
Method Parameters
Demystify Java's strict Pass-By-Value model for primitives and object references, Varargs, and SafeVarargs warnings.
Return Types
Analyze method exit protocols, return value type promotions, Covariant Returns in overriding, and wrapper unboxing NPE traps.
Method Overloading
Analyze compile-time polymorphism, overload signatures, and the compiler's strict resolution precedence rules.
Recursion
Analyze stack frames, base case design, StackOverflowError limits, and HotSpot's lack of Tail Call Optimization.
Static Methods
Analyze class-scope executions, access restrictions to instance variables, static imports, and method hiding rules.
final Methods
Explore overriding prevention, JIT compiler optimizations like virtual method inlining, and design inheritance boundaries.
Method References
Master double-colon receivers, arbitrary type resolutions, constructor references, and invokedynamic metafactories.