Sobes.tech
Junior

Kas yra raktiniai žodžiai final ir finalize Java kalboje ir kuo jie skiriasi?

sobes.tech AI

Atsakymas iš AI

Java kalba final ir finalize yra skirtingi konceptai su skirtingais tikslais:

  • final yra raktinis žodis, naudojamas:
    • Konstantiems (kintamiesiems, kurie negali būti pakeisti po inicializacijos).
    • Metodams, kurių negalima perrašyti pogrupiuose.
    • Klasėms, kurių negalima paveldėti.

Pavyzdys:

final int x = 10; // x negali būti pakeistas
final class MyClass {} // klasė negali būti paveldėta
final void myMethod() {} // metodas negali būti perrašytas
  • finalize() yra Object klasės metodas, kuris kviečiamas šiukšlių surinkėjo prieš ištrindamas objektą iš atminties. Jis skirtas išlaisvinti išteklius, tačiau jo naudojimas nerekomenduojamas, nes jo kvietimas nėra garantuotas ir gali sukelti nenuspėjamą elgesį.

Pavyzdys:

@Override
protected void finalize() throws Throwable {
    // išlaisvinti išteklius
    super.finalize();
}

Skirtumai:

  • final yra raktinis žodis, skirtas kontroliuoti kodo modifikaciją.
  • finalize yra metodas, skirtas valyti prieš šiukšlių surinkimą, kuris yra pasenęs ir nerekomenduojamas naudoti.