Sobes.tech
Middle

Java'da final ve finalize anahtar kelimeleri nedir ve aralarındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

final - değişmezliği belirtmek için anahtar kelime:

  • Değişken: Referans veya değer, başlatmadan sonra değiştirilemez.
  • Metot: Metot, alt sınıfta geçersiz kılınamaz.
  • Sınıf: Sınıf kalıtılamaz.

finalize() - Çöp toplayıcı (Garbage Collector) nesne hafızadan silinmeden önce çağrılan metot. Object sınıfında bulunur ve dış kaynakların serbest bırakılması için tasarlanmıştır.

Farklar:

final finalize()
Anahtar kelime Metot
Değişmezliği belirtir Nesne silinmeden önce çağrılır
Tanımla ilgili Nesnenin yaşam döngüsü ile ilgilidir
Değişkenler, metotlar, sınıflara uygulanır Sadece nesnelere uygulanır

final kullanımı örneği:

public class FinalExample {
    final int finalVariable = 10;

    final void finalMethod() {
        // değişmez metot mantığı
    }
}

final class FinalClass {
    // içerik
}

finalize() kullanımı örneği:

public class FinalizeExample {
    @Override
    protected void finalize() throws Throwable {
        try {
            // Dış kaynakların temizlenmesi, örneğin bağlantıyı kapatma
            System.out.println("FinalizeExample nesnesi sonlandırılıyor...");
        } finally {
            super.finalize(); // Her zaman super.finalize() çağrılmalı
        }
    }
}

Önemli: finalize() kullanımı modern Java'da önerilmez çünkü tahmin edilemeyen çalışma zamanı ve performans sorunlarına yol açabilir. Kaynak yönetimi için try-with-resources blokları tercih edilmelidir.