1
JavaAdvanced#memory#gc
Memory leaks happen when objects remain reachable (referenced) even though they're no longer needed, e.g., static collections that keep growing, unclosed resources, or listeners not deregistered, preventing GC from reclaiming them.
static List<Object> cache = new ArrayList<>();
void addToCache(Object o) { cache.add(o); } // never removed, grows forever -> leak