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:
finalanahtar 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()iseObjectsı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:
finalkodun değiştirilmesini kontrol etmek için anahtar kelimedir.finalizeise çöp toplamadan önce temizlik yapmak için kullanılan, eski ve önerilmeyen bir metodur.