Despite Java being garbage collected, "memory leaks" can still occur when the garbage collector fails to reclaim unneeded objects. This can as Java only reclaims unreachable objects and thus if a reference is kept to an object that's no longer needed it will never be garbage collected.