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.