How does Java GC work at a high level (and why is it generational)? | LetsGit.IT