Junior — Middle
Java-da obyekt üzərində finalize metodunu çağıranda nə baş verir və hansı resursları azad edə bilər?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da finalize() metodu, çöp to'plovchi tomonidan ob'ekt xotiradan o'chirilishidan oldin chaqiriladi. Bu metod, avtomatik ravishda tozalanmaydigan boshqarilmaydigan resurslarni bo'shatish uchun mo'ljallangan, masalan:
- Fayl deskriptorlarini yopish
- Tarmoq ulanishlarini bo'shatish
- Nativ resurslarni tozalash
Ammo, finalize() foydalanish tavsiya etilmaydi, chunki uning chaqirilishi kafolatlanmagan va resurslarni bo'shatishda kechikishlarga olib kelishi mumkin. Zamonaviy yondashuvlar try-with-resources yoki resurslarni aniq bo'shatishni taklif qiladi.
Misol:
@Override
protected void finalize() throws Throwable {
try {
// resurslarni bo'shatish
} finally {
super.finalize();
}
}