Diferența dintre Final, Final și Finalize în Java

Autor: Laura McKinney
Data Creației: 2 Aprilie 2021
Data Actualizării: 10 Mai 2024
Anonim
Diferența dintre Final, Final și Finalize în Java - Tehnologie
Diferența dintre Final, Final și Finalize în Java - Tehnologie

Conţinut


Cuvintele „final, în final și finalizare” se află în conținutul Java. Fiecăruia dintre ei i se oferă o funcționare diferită. Diferența de bază dintre final, în final și finalizare este aceea final este un modificator de acces, in cele din urma este un bloc și finalize este o metodă a unei clase de obiecte. Există alte câteva diferențe între final, în final și finalizare care sunt discutate în graficul de comparație.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație

Baza pentru comparațieFinalIn cele din urmafinalize
De bazăFinal este un „cuvânt cheie” și „modificator de acces” în Java.În cele din urmă este un „bloc” în Java.Finalize este o „metodă” în Java.
AplicabilFinal este un cuvânt cheie aplicabil claselor, variabilelor și metodelor.În cele din urmă este un bloc care este întotdeauna asociat cu blocul try and catch.finalize () este o metodă aplicabilă obiectelor.
Lucru(1) Variabila finală devine constantă și nu mai poate fi reasignată.
(2) O clasă finală nu poate fi anulată de clasa de copii.
(3) Clasa finală nu poate fi extinsă.
Un bloc „în sfârșit”, curățați resursele utilizate în blocul „încercați”.Metoda Finalize efectuează activități de curățare legate de obiect înainte de distrugerea acestuia.
ExecuţieMetoda finală este executată la apel.Blocul „în sfârșit” se execută imediat după executarea blocului „try-catch”.metoda finalize () se execută chiar înainte de distrugerea obiectului.


Definiția Final

„Final” este un cuvânt cheie în Java. Este un modificator de acces. Cuvântul cheie „final” se aplică claselor, metodelor și variabilelor. Să vedem cum funcționează cu fiecare dintre ei.

Variabilă finală

  • Când un cuvânt cheie final este aplicat variabilei, acesta nu poate fi modificat în continuare.
  • O variabilă finală trebuie inițiată atunci când este declarată.
  • Într-o convenție comună de codare, variabilele finale sunt declarate în UPPERCASE.
  • Variabila finală nu ocupă memoria de la fiecare caz în parte.

final int FILE_OPEN = 2;

Metode finale

  • Când o metodă din clasă este declarată finală, nu poate fi anulată de subclasa sa.
  • Metodele mici declarate finale pot fi făcute „în linie” de către compilator, ceea ce va reduce cheltuielile generale ale apelurilor funcționale și va crește îmbunătățirea performanței.
  • Metodele suprasolicitate apelează, sunt rezolvate dinamic, dar când o metodă este declarată finală, nu poate fi anulată. Prin urmare, apelarea funcției poate fi rezolvată la timp de compilare.

clasa A {final void meth () {System.out.ln ("Aceasta este o metodă finală."); }} clasa B se extinde A {void meth () {// Clas B nu poate moșteni metoda clasei A. System.out.ln ("Nu trece peste"); }}

Clasa finală

  • Când o clasă este declarată finală, atunci ea nu poate fi moștenită de nicio subclasă.
  • Declararea unei clase ca finală va declara automat toate metodele sale finale.
  • Nu puteți declara o clasă atât „abstractă” cât și „finală”.

clasa finală A {// ...} clasa B se extinde A {// Clasa B nu poate moșteni clasa A // ...}

  • În Java „în sfârșit” este un bloc care este întotdeauna asociat cu blocul try / catch.
  • Blocul „în sfârșit” se execută după blocul try / catch și înainte de blocarea codului try / catch.
  • Blocul „în sfârșit” va executa dacă excepția este aruncată sau nu.
  • Atunci când o excepție este aruncată și niciun bloc de captura nu se potrivește cu excepția chiar atunci, blocul „în sfârșit” este executat.
  • Atunci când o metodă revine apelantului din interiorul blocului try / catch printr-o excepție neatinsă sau o declarație de returnare explicită, blocul „în sfârșit” se execută chiar înainte ca metoda să revină la apelant.
  • Blocul „în sfârșit” este folosit pentru curățarea resurselor sau pentru eliberarea memoriei utilizate în blocul „try”.
  • Blocul „în sfârșit” este opțional, dar este o practică bună să scrieți în sfârșit blocul după blocul try / catch.

class FinalExample {// Această metodă aruncă o excepție din metodă. static void procA () {try {System.out.ln ("în interiorul procA"); aruncă noi RuntimeException („demo”); } în sfârșit {System.out.ln ("în sfârșit procAs"); }} // Reveniți din interiorul unui bloc de încercare. static void procB () {try {System.out.ln ("în interiorul procB"); întoarcere; } în sfârșit {System.out.ln ("în sfârșit procBs"); }} // Executați normal un bloc de încercare. static void procC () {try {System.out.ln ("în interiorul procC"); } în sfârșit {System.out.ln ("în sfârșit procCs"); }} public static void main (args String) {try {procA (); } catch (Excepție e) {System.out.ln ("Excepție prinsă"); } procB (); procC (); }} // ieșire în procA procA este în sfârșit Excepție prinsă în procB procB în sfârșit în procC procC în sfârșit

Definiția Finalize

  • Finalizarea este o metodă dintr-o clasă de obiecte.
  • Un obiect poate deține unele resurse non-java, cum ar fi gestionarea fișierului; atunci trebuie eliberat înainte de a fi distrus.
  • Această metodă este invocată de colectorul de gunoi înainte de a distruge obiectul complet.
  • Această metodă realizează activități de curățare a obiectului înainte de a fi distrus.

Forma generală a metodei finalize () este următoarea.


protected void finalize () {// cod de finalizare aici}

Metoda de finalizare este declarată protejată, astfel încât nu poate fi accesată din afara clasei.

Această metodă este întotdeauna apelată înainte de colectarea gunoiului.

  1. Cuvântul cheie final este un modificator de acces, în final este un bloc, iar finalizarea este o metodă.
  2. Finalul de cuvinte cheie este aplicabil claselor, variabilelor și metodelor claselor, în sfârșit este un bloc asociat cu blocul try catch care este utilizat pentru a gestiona excepții, finalizarea este o metodă care operează numai pe obiecte.
  3. Variabila o dată declarată finală devine constantă și nu mai poate fi reasignată, o metodă declarată finală nu poate fi anulată, iar clasa o dată declarată finală nu poate fi moștenită. În sfârșit, blocul este folosit pentru curățarea resurselor utilizate de blocarea try și catch. Metoda de finalizare este utilizată pentru curățarea resurselor utilizate de un obiect înainte ca obiectul să fie distrus.

Concluzie:

Final, în final și finalizare are un efect diferit atunci când este aplicat pe o metodă.