Çöp Toplayıcısı Tarafından Silinen Nesnelerden Referanslı Olanlarla Olmayanlar

Çöp toplayıcısı hangi nesneleri, neye göre siler ?
Çöp Toplayıcısı Hangi Nesneleri, Neye Göre Siler ?

Çöp toplayıcısının amacı, programda kullanılmayan nesneleri silmektir.
Silinmeyen nesneler referanslı olanlardır. yani kendi başına birşey değil, biryere bağlı olan ve kullanılan nesnedir.
Bir nesne bir veya daha sayıdaki referansa bağlı olabilir.

ufak bir örnekle açıklamak gerekirse :

 
public class KorOlasiCopculer {
   
    public static void main(String args[]) {
        Biyik babam = new Biyik(1); //
        new Biyik(2);
        System.gc();
        }

    }
 

Yaptığım örnekte 2 tane bıyık nesnesi vardır.Bu bıyık nesnelerinden biri çöp toplayıcısı tarafından
siliniyor ama diğeri silinmiyor. Peki hangisi neden silinir veya neden silinmez ?

Referans dediğimiz olay burda kendini gösteriyor. babam referansına bağlı olan bıyık silinmez.çünkü
bıyık sahipsiz değildir. babam referansına bağlıdır. 2 sayısını göndererek oluşturduğumuz diğer
bıyık bellekten silinir çünkü bıyık sahipsizdir. yani bu nesnemize herhangi bir referans bağlı
değildir.

uygulama sonucu şu şekilde olur :

        Biyik Nesnesi Olusturuluyor = 1
        Biyik Nesnesi Olusturuluyor = 2
        Biyik Nesnesi Siliniyor = 2

Bu işlemi bir de akış diyagramı olarak gösterelim.


Çöp Toplayıcısı Tarafından Silinen Nesnelerden Referanslı Olanlarla Olmayanlara Uygulanan İşlemin Dia ile Anlatımı.


Kaynak : Burak DEMİRÖZ
Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...