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.