Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

Sorunuz mu var? Belki de çoktan soruldu..

0
Garbage collector nedir?

Çözüldü 1 Cevaplar 102 Gösterim Java
Selam,

Garbage collector nedir? neden kullanma ihtiyacı duyarız?

1 cevap

1
En İyi Cevap

Ç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. 

25 Kasım 2016 kenan (2,833 puan) cevapladı
25 Kasım 2016 tolga seçti
2Yorumlar
13 Aralık 2016 buzel (551 puan) yorumladı
çok güzel bir açıklama olmuş :)

Açıklamanıza göre garbage collector için bir nevi bellek temizleyici diyebiliriz sanırım.

Peki garbage collector, yazılan bir programa mı özeldir? yoksa bir sistem üzerinde tek bir garbage collector mü vardır?

yani, bir işletim sistemi üzerinde çalışan 5 tane Java uygulamamız varsa 5 ayrı garbage collector mü vardır?  

burdaki temizleme işlemini Java'nın kendisi mi yapıyor? yoksa dışarıdan işletim sistemi mi duruma müdahale ediyor?
13 Aralık 2016 kenan (2,833 puan) yorumladı
Aslında bu tür soruları "ilgili bir soru sor" butonuna basarak sorsan daha güzel olabilir. Keza hem yeni bir soru sorulmuş olur hemde daha rahat tartışma ortamı kurulabilir.

Sorunun cevabına gelince:

- Process bazında garbage collector oluşacaktır. Yani 10 java uygulaması için 10 garbage collector olacak. Sistem bazında tek bir tane olmaz yani.

- Normalde en uygun zamanı kendisi belirlemek üzere çalışır. İyi veya kötü yönleri olabilir. İstersen kendin çalıştırmak üzere tetikleyebilirsin.
...