Sobes.tech
Middle

Java'da final va finalize kalit so'zlari nima va ularning farqi nima?

sobes.tech AI

AIdan javob

final - kalit so'z o'zgarmaslikni belgilash uchun:

  • O'zgaruvchi: Referens yoki qiymat boshlang'ichdan keyin o'zgartirilmaydi.
  • Metod: Metod voris klassda qayta yozilmaydi.
  • Klass: Klass meros qilib olinmaydi.

finalize() - garbage collector (axlat yig'uvchi) ob'ektni xotiradan o'chirishdan oldin chaqiriladigan metod. U Object klassida joylashgan va tashqi resurslarni bo'shatish uchun mo'ljallangan.

Farqlar:

final finalize()
Kalit so'z Metod
O'zgarmaslikni belgilash Ob'ekt o'chirilishidan oldin chaqiriladi
Deklaratsiya bilan bog'liq Ob'ektning hayot aylanishi bilan bog'liq
O'zgaruvchilar, metodlar, klasslarga qo'llanadi Faqat ob'ektlarga

final dan foydalanish misoli:

public class FinalExample {
    final int finalVariable = 10;

    final void finalMethod() {
        // o'zgarmas metod logikasi
    }
}

final class FinalClass {
    // mazmun
}

finalize() dan foydalanish misoli:

public class FinalizeExample {
    @Override
    protected void finalize() throws Throwable {
        try {
            // tashqi resurslarni tozalash, masalan, ulanishni yopish
            System.out.println("FinalizeExample ob'ekti yakunlanmoqda...");
        } finally {
            super.finalize(); // Har doim super.finalize() chaqiring
        }
    }
}

Muhim: finalize() dan foydalanish zamonaviy Java da tavsiya etilmaydi, chunki uning bajarilish vaqti oldindan ma'lum emas va ishlash samaradorligiga ta'sir qilishi mumkin. Resurslarni boshqarish uchun try-with-resources bloklaridan foydalanish tavsiya etiladi.