Sobes.tech
Middle

Kas ir galvenās atslēgvārdi final un finalize Java valodā un kāda ir to atšķirība?

sobes.tech AI

Atbilde no AI

final - atslēgas vārds, kas apzīmē nemainīgumu:

  • Mainīgais: saite vai vērtība nevar tikt mainīta pēc inicializācijas.
  • Metode: metodi nevar pārrakstīt bērnu klasē.
  • Klase: klasi nevar manto.

finalize() - metode, kas tiek izsaukta atkritumu savācēja (Garbage Collector) pirms objekta dzēšanas no atmiņas. Tā atrodas Object klasē un paredzēta ārējo resursu atbrīvošanai.

Salīdzinājums:

final finalize()
Atslēgvārds Metode
Apzīmē nemainīgumu Izsauc pirms objekta dzēšanas
Saistīts ar deklarāciju Saistīts ar objekta dzīves ciklu
Pielietojums mainīgajiem, metodēm, klasēm Pielietots tikai objektiem

final piemērs:

public class FinalExample {
    final int finalVariable = 10;

    final void finalMethod() {
        // nemainīga metode
    }
}

final class FinalClass {
    // saturs
}

finalize() piemērs:

public class FinalizeExample {
    @Override
    protected void finalize() throws Throwable {
        try {
            // ārējo resursu atbrīvošana, piemēram, savienojuma aizvēršana
            System.out.println("Finalizing FinalizeExample object...");
        } finally {
            super.finalize(); // vienmēr izsauciet super.finalize()
        }
    }
}

Svarīgi: finalize() izmantošana mūsdienu Java nav ieteicama, jo tās izpildes laiks ir nenoteikts un var radīt veiktspējas problēmas. Resursu pārvaldībai labāk izmantot try-with-resources blokus.