Middle
Java-da final və finalize açar sözləri nədir və onların fərqi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
final - dəyişməzliyi göstərmək üçün açar söz:
- Dəyişən: Referans və ya dəyər ilkinləşdirmədən sonra dəyişdirilə bilməz.
- Metod: Metod törəmə sinifdə yenidən təyin oluna bilməz.
- Sinif: Sinif miras alınmaz.
finalize() - obyekt yaddaşdan silinməzdən əvvəl çöp toplayıcı (Garbage Collector) tərəfindən çağırılan metod. O, Object sinifində yerləşir və xarici resursların azad olunması üçün nəzərdə tutulub.
Fərqlər:
final |
finalize() |
|---|---|
| Açar söz | Metod |
| Dəyişməzliyi göstərir | Obrazın silinməsindən əvvəl çağırılır |
| Deklarasiya ilə əlaqəli | Obrazın həyat dövrü ilə əlaqəli |
| Dəyişənlərə, metodlara, siniflərə tətbiq edilir | Yalnız obyektlərə tətbiq edilir |
final istifadə nümunəsi:
public class FinalExample {
final int finalVariable = 10;
final void finalMethod() {
// dəyişməz metod loqikası
}
}
final class FinalClass {
// məzmun
}
finalize() istifadə nümunəsi:
public class FinalizeExample {
@Override
protected void finalize() throws Throwable {
try {
// xarici resursların təmizlənməsi, məsələn, əlaqəni bağlamaq
System.out.println("FinalizeExample obyektinin sonlandırılması...");
} finally {
super.finalize(); // Həmişə super.finalize() çağırın
}
}
}
Vacib: finalize() istifadəsi müasir Java-da tövsiyə edilmir, çünki onun icra vaxtı qeyri-müəyyən və performans problemlərinə səbəb ola bilər. Resursların idarə olunması üçün try-with-resources bloklarından istifadə etmək daha yaxşıdır.