Sobes.tech
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();
    }
}