Garbage Collection به عنوان یک تکنیک مدیریت حافظه مدت زیادی است که مورد استفاده قرار میگیرد اما در Java یک سری نقشهای جدیدی دارد. در زبانهایی مانند C++ حافظه باید به صورت دستی مدیریت شود که این کار توسط برنامه نویس انجام میگردد این موضوع خود باعث ایجاد مشکل میشود زیرا برگرداندن منابع سیستم ممکن است فراموش گردد. Java این مشکلات را به وسیله مدیریت حافظه حل میکند. تمام اشیا در Java توسط یک ارجاع قابل دستیابی هستند بنابراین هنگامیکه Garbage Collection شیی که بدون استفاده میباشد را پیدا کند آنرا به منابع سیستم بازمیگرداند. استفاده Java از Garbage Collection فلسفه Java را به طور کلی منعکس میکند. طراحان زبان Java سعی کردند زبانی را به وجود آورند که مشکلات زبانهای دیگر را نداشته باشد. با استفاده از Garbage Collection یک برنامه نویس Java ممکن نیست که منبعی را فراموش کند به سیستم بازگرداند یا اینکه منبعی که به سیستم بازگردانده شده هنوز مورد استفاده باشد.