# Low Level Design
All Low Level Design notes →1 — Memory Optimization
Examines how object layout, field ordering, and reference graphs drive per-instance memory footprint and garbage collector pressure.
2 — Object Pooling
Reuses a fixed set of expensive-to-construct objects instead of allocating and discarding them, trading extra bookkeeping for reduced allocation churn.
3 — Lazy Initialization
Defers construction of a costly resource until its first actual use, at the cost of added complexity around thread safety and null checks.
4 — Caching Strategies
Compares eviction policies, invalidation triggers, and cache placement so repeated lookups can be served without recomputation or a round trip.
5 — Efficient Collections
Matches collection data structures to their access patterns so lookup, insertion, and iteration costs stay aligned with the workload's actual shape.
6 — Profiling Object-Oriented Applications
Walks through using profilers to locate hot paths and allocation hotspots in object-oriented code before applying any optimization technique.