Sobes.tech
Junior

Калидвожаҳои асосии final ва finalize дар Java чистанд ва фарқиятҳои онҳо дар чист?

sobes.tech AI

Ҷавоб аз AI

Дар Java, final ва finalize мафҳумҳои гуногун бо мақсадҳои гуногун мебошанд:

  • final калиди калидӣ мебошад, ки барои эълон кардани:
    • Константҳо (вариаблҳо, ки пас аз оғоз кардан тағир дода намешаванд).
    • Методҳо, ки дар синфҳои зерӣ такрор кардан мумкин нест.
    • Синфҳо, ки наметавонанд мерос гиранд.

Масалан:

final int x = 10; // x тағир дода намешавад
final class MyClass {} // синф наметавонад мерос гирад
final void myMethod() {} // метод наметавонад такрор карда шавад
  • finalize() — як методи синфи Object мебошад, ки аз ҷониби ҷамъкунандаи партовҳо пеш аз хориҷ кардани объект аз ёдгирӣ даъват мешавад. Он барои озод кардани захираҳо пешбинӣ шудааст, аммо истифодаи он тавсия дода намешавад, зеро даъвати он кафолат дода намешавад ва метавонад ба рафтори номуайян оварда расонад.

Масалан:

@Override
protected void finalize() throws Throwable {
    // озод кардани захираҳо
    super.finalize();
}

Фарқиятҳо:

  • final калиди калидӣ барои назорати тағироти код мебошад.
  • finalize — методи тозакунӣ пеш аз ҷамъоварии партовҳо, кӯҳна ва тавсия дода намешавад.