the automatic detection and freeing of memory that is no longer in use.
• reclaiming memory used by unreferenced objects  • periodically performed by java • only needed if running low on memory (not guaranteed to occur)
used in developing computer systems are mathematically based techniques for describing system properties