Garbage collection is an integral but often misunderstood part of application behavior on Java platforms. As such it is important for Java developers to understand how collector mechanisms and algorithms work.
This comprehensive presentation reviews and classifies the major garbage collectors available in JVMs today. Following an overview of common garbage collection techniques such as generational, parallel, stop-the-world, incremental and concurrent algorithms, it defines terms and metrics common to all collectors. It also discusses trade-offs in balancing requirements for responsiveness, throughput, space, and available memory, and covers some pitfalls, common misconceptions and garbage collection behavior myths.
To learn more about how Java garbage collection works and what the differences are between collection algorithms, watch this video from Azul CTO Gil Tene: Understanding Java Garbage Collection.