Java'da Çöp Toplama nedir?
Java'da Çöp Toplama , programların otomatik olarak bellek yönetimini gerçekleştirdiği bir işlemdir. Çöp Toplayıcı (GC), kullanılmayan nesneleri bulur ve belleği geri kazanmak için siler. Java'da, nesnelerin dinamik bellek tahsisi, biraz bellek kullanan yeni operatör kullanılarak gerçekleştirilir ve bellek, nesnenin kullanımı için referanslar olana kadar ayrılmış olarak kalır.
Bir nesneye referans olmadığında, artık gerekli olmadığı varsayılır ve nesne tarafından kullanılan bellek geri kazanılabilir. Java, ayırmayı otomatik olarak gerçekleştirdiğinden, bir nesneyi yok etmeye gerek yoktur.
Bunu başaran teknik, Çöp Toplama olarak bilinir . Bellek ayırmayan programlar, sistemde ayrılacak bellek kalmadığında sonunda çökebilir. Bu programların bellek sızıntıları olduğu söyleniyor.
Java'da çöp toplama , programın ömrü boyunca otomatik olarak gerçekleşir, bu da bellek ayırma ihtiyacını ortadan kaldırır ve böylece bellek sızıntılarını önler.
C dilinde, free () işlevini kullanarak dinamik olarak ayrılan belleğin ayrılması programcının sorumluluğundadır. Java bellek yönetiminin öncülük ettiği yer burasıdır.Not: Tüm nesneler belleğin Öbek Bölümünde oluşturulur . Daha sonraki eğitimde bu konu hakkında daha fazla bilgi.
Örnek: Java'da Çöp Toplayıcı Mekanizmasını Öğrenmek İçin
Adım 1) Aşağıdaki kodu bir düzenleyiciye kopyalayın.
sınıf Öğrenci {int a;int b;public void setData (int c, int d) {a = c;b = d;}public void showData () {System.out.println ("a Değeri =" + a);System.out.println ("b değeri =" + b);}public static void main (String args []) {Öğrenci s1 = yeni Öğrenci ();Öğrenci s2 = yeni Öğrenci ();s1.setData (1,2);s2.setData (3,4);s1.showData ();s2.showData ();// Öğrenci s3;// s3 = s2;//s3.showData ();// s2 = boş;//s3.showData ();// s3 = boş;//s3.showData ();}}
Adım 2) Kodu Kaydedin, Derleyin ve Çalıştırın. Şemada gösterildiği gibi, iki nesne ve iki referans değişkeni oluşturulur.
Adım 3) Yorumsuz satır # 20,21,22. Kodu kaydedin, derleyin ve çalıştırın.
Adım 4) Aşağıdaki şemada gösterildiği gibi, iki referans değişkeni aynı nesneyi işaret etmektedir.
Adım 5) 23 ve 24 numaralı satırın yorumunu kaldırınız. Kodu Derleyin, Kaydedin ve Çalıştırın
Adım 6) Aşağıdaki diyagramda gösterildiği gibi, s2 sıfır olur, ancak s3 hala nesneyi işaret eder ve java çöp toplama için uygun değildir.
Adım 7) Yorumsuz satır # 25 ve 26. Kodu Kaydedin, Derleyin ve Çalıştırın
Adım 8) Bu noktada nesneye işaret eden hiçbir referans yoktur ve çöp toplama için uygun hale gelir. Bellekten silinecek ve onu geri almanın bir yolu yok.
Java'da bir nesne nasıl silinir?
1) Nesnenizi Çöp Toplama için uygun hale getirmek istiyorsanız, referans değişkenini null olarak atayın.
2) İlkel türler nesne değildir. Boş atanamazlar.