Modern software places increasing reliance on dynamic memory allocation, but its direct management is not only notoriously error-prone. Garbage collection eliminates many of these bugs. This reference presents each of the most important algorithms in detail, often with illustrations of its characteristic features and animations of its use.