Java’da Garbage Collection

sametklou

Java’da Garbage Collection

Java programlama dili, bellek yönetimini otomatik olarak sağlayan bir Garbage Collection mekanizması sunar. Bu sayede programcılar, bellek yönetimi ile ilgili sorunlarla uğraşmak zorunda kalmazlar. Garbage Collection, programın çalışması sırasında kullanılmayan nesneleri tanımlar ve bunları bellekten temizler.

Garbage Collection Nasıl Çalışır?

Java Sanal Makinesi (JVM), Garbage Collection sürecini yönetir. JVM, bellekteki kullanılmayan nesneleri tanımlar ve bunları otomatik olarak temizler. Bu süreç, programın çalışma zamanında gerçekleşir ve programcının müdahalesine ihtiyaç duymaz.

Garbage Collection Türleri

Java’da dört farklı Garbage Collection türü bulunmaktadır:

  • Serial Garbage Collector: Tek iş parçacıklı işlemci sistemlerinde kullanılır.
  • Parallel Garbage Collector: Çok çekirdekli işlemci sistemlerinde kullanılır.
  • CMS (Concurrent Mark Sweep) Garbage Collector: Daha hızlı Garbage Collection için kullanılır.
  • G1 (Garbage First) Garbage Collector: Büyük bellek havuzlarında daha iyi performans sağlar.

Garbage Collection Örnekleri

public class GarbageCollectionExample {

    public static void main(String[] args) {

        GarbageCollectionExample obj1 = new GarbageCollectionExample();
        GarbageCollectionExample obj2 = new GarbageCollectionExample();
        
        // obj1 referansını null yaparak bu nesnenin bellekten silinmesini sağlıyoruz
        obj1 = null;
        
        // Garbage Collection çalıştırılıyor
        System.gc();
    }
    
    // finalize metodu, bir nesne bellekten temizlenirken otomatik olarak çalıştırılır
    @Override
    protected void finalize() {
        System.out.println("Garbage Collection çalıştı.");
    }
}

Yukarıdaki örnekte, GarbageCollectionExample sınıfından iki nesne oluşturulmuş ve birinci nesnenin referansı null yapılmıştır. Ardından System.gc() metodu çağrılarak Garbage Collection işlemi tetiklenmiştir. Bu işlem sonucunda program, finalize() metodu üzerinden Garbage Collection'ın çalıştığını belirten bir mesajı ekrana yazdıracaktır.

Java'da Garbage Collection konusu oldukça önemlidir ve bellek yönetimi konusunda programcılara büyük kolaylık sağlar. Uygulama performansını etkileyen bu mekanizmayı iyi anlamak ve etkili kullanmak Java programlama dünyasında başarılı olmak için önemlidir.