Sobes.tech
Junior

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

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da final ve finalize farklı kavramlardır ve farklı amaçlara hizmet ederler:

  • final anahtar kelimesi, şu durumlar için kullanılır:
    • Sabitler (başlangıçtan sonra değiştirilemeyen değişkenler).
    • Alt sınıflarda geçersiz kılınamayan metodlar.
    • Miras alınamayan sınıflar.

Örnek:

final int x = 10; // x değiştirilemez
final class MyClass {} // sınıf miras alınamaz
final void myMethod() {} // metod geçersiz kılınamaz
  • finalize() ise Object sınıfının bir metodudur ve çöp toplayıcı, nesne hafızadan kaldırılmadan önce çağırır. Kaynakları serbest bırakmak için tasarlanmıştır, ancak kullanımı önerilmez çünkü çağrısı garanti edilmez ve öngörülemeyen davranışlara yol açabilir.

Örnek:

@Override
protected void finalize() throws Throwable {
    // kaynakları temizle
    super.finalize();
}

Farklar:

  • final kodun değiştirilmesini kontrol etmek için anahtar kelimedir.
  • finalize ise çöp toplamadan önce temizlik yapmak için kullanılan, eski ve önerilmeyen bir metodur.