Çok meşgul insanların arkasını toplayan anneleri gibidir :)
Ortalığı dağıt dağıt biri gelsin toplasın mantalitesi. Tabi dağıtan adam için rahatlık oluyor. Aman benim işime bir küçük araba lazım diyorsun, bakıyoruz ki araba alacak kadar hem gücümüz hem yerimiz var, alıyoruz o arabayı işimiz bitirince kenarda kalsın. Sonra bakıyoruz ki bize yastık lazım diğer odadan getir, işini kullan bırak ortada kalsın. Sonra belirli zaman aralıklarında örneğin ayda bir kere anne gelir bakar ki oooo yastıklar bir tarafta, ortada kocaman bir araba var. Alır yastıkları olması gereken yere bırakır. Alır arabayı satar sana hem yer açar hem de masraftan kurtarır. Sonuç olarak sen yeni birşey alacağın zaman ortalık temizlenmiş, herşey düzeltilmiş görürsün ve tekrar kirletmek için hemen işe başlayabilirsin.
Aslında kelime anlamı bile bize o havayı veriyor, garbage collector yani çöp toplayıcı. Peki o olmasa ne yapardık? Tabiki kendi pisliğimizi kendimiz toplamak zorunda kalırdık. Yeni class mı lazım oldu? çok güzel new dedik aldık, kullandık işimiz bitti ne yapmak lazım? delete/free deyip normalde aldığımız yere bırakmamız gerekir. Bırakmazsak ne olur, fazla sürmeden yerimiz dolar. Ev ya da artık yavaş yavaş bilgisayar terimlerine dönersek hafıza (memory/ram) çöp eve döner. Sonra bir daha new deyip birşey almak istediğin zaman bir uyarı gelir; ev dolu daha ne alacaksın (out of memory).
Uzun lafın kısası, hafıza/lojistik yönetimini kendimiz yapmadığımız tek taraflı sadece doldurmakla uğraşırken, bir mekanizmanın işe girip o alınanları temizlediği yapı ya da temizleyen yapı garbage collector oluyor.
Daha önceleri de olmasına rağmen sanıyorum Java'nın popülerleştirdiği bir kavram.