Diferència entre Final, Final i Finalize en Java

Autora: Laura McKinney
Data De La Creació: 2 Abril 2021
Data D’Actualització: 18 Ser Possible 2024
Anonim
Diferència entre Final, Final i Finalize en Java - Tecnologia
Diferència entre Final, Final i Finalize en Java - Tecnologia

Content


Les paraules "final, finalment, i finalització" es troben dins de la versió de Java. A cadascun d'ells se'ls proporciona un funcionament diferent. La diferència bàsica entre final, i finalment, final és que final és un modificador d'accés, finalment és un bloc i finalitzar és un mètode d'una classe d'objectes. Hi ha algunes altres diferències entre final i finalment que es discuteixen al gràfic de comparació.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Conclusió

Gràfic de comparació

Bases per a la comparacióFinalFinalmentFinalitzar
BàsicFinal és una "paraula clau" i un "modificador d'accés" en Java.Finalment es troba un "bloc" en Java.Finalizar és un "mètode" en Java.
AplicableFinal és una paraula clau aplicable a classes, variables i mètodes.Finalment, hi ha un bloc que sempre està associat al bloc try i catch.finalize () és un mètode aplicable a objectes.
Treball(1) La variable final es fa constant i no es pot assignar de nou.
(2) La classe infantil no pot ser substituïda per un mètode final.
(3) La classe final no es pot ampliar.
Un bloc "finalment", netegeu els recursos utilitzats al bloc "proveu".El mètode Finalize realitza activitats de neteja relacionades amb l'objecte abans de la seva destrucció.
ExecucióEl mètode final s'executa amb la seva trucada.El bloc "Finalment" s'executa just després de l'execució del bloc "try-catch".El mètode finalize () s'executa just abans de la destrucció de l'objecte.


Definició de Final

"Final" és una paraula clau a Java. És un modificador d’accés. La paraula clau "final" s'aplica a les classes, mètodes i variables. Vegem com funciona amb cadascun d’ells.

Variable final

  • Quan s’aplica una paraula clau final a la variable, no es pot modificar més.
  • S’ha d’inicialitzar una variable final quan es declari.
  • En una convenció de codificació comuna, es declaren variables finals a UPPERCASE.
  • La variable final no ocupa memòria cada cas.

final int FILE_OPEN = 2;

Mètodes finals

  • Quan un mètode de classe es declara final, no es pot substituir per la seva subclasse.
  • Els petits mètodes que es declaren finals poden ser realitzats "en línia" pel compilador, la qual cosa reduirà la despesa de trucades de funcions i augmentarà les millores de rendiment.
  • Les trucades de mètodes anul·lats es resolen dinàmicament, però quan un mètode es declara definitiu, no es pot substituir. Per tant, la funció de trucada es pot resoldre al mateix temps.

classe A {final void meth () {System.out.ln ("Aquest és un mètode final."); }} La classe B s'estén A {void meth () {// Class B no pot heretar el mètode de la classe A. System.out.ln ("No anul·la"); }}

Class final

  • Quan una classe es declara final, llavors no pot ser heretada per cap subclasse.
  • En declarar una classe com a final es declaren automàticament tots els seus mètodes definitius.
  • No podeu declarar una classe com a "abstracte" i "final".

la classe final A {// ...} la classe B s'estén A {// La classe B no pot heretar la classe A // ...}

  • En Java “finalment” és un bloc que sempre està associat al bloc try / catch.
  • El bloc "finalment" s'executa després del bloc try / catch i abans del codi següent del bloc try / catch.
  • El bloc "finalment" executarà si l'excepció es llança o no.
  • Quan es llança una excepció i cap bloc de captura no coincideix amb l'excepció, llavors, s'executa el bloc "finalment".
  • Quan un mètode torna a la persona que truca des de dins del bloc try / catch mitjançant una excepció incompleta o una declaració de retorn explícita, el bloc "finalment" s'executa just abans que el mètode torni a la persona que truca.
  • El bloc "finalment" s'utilitza per netejar els recursos o alliberar la memòria usada al bloc "try".
  • El bloc "finalment" és opcional, però és una bona pràctica escriure finalment el bloc després del bloc try / catch.

class finalmentExemple {// Aquest mètode llença una excepció fora del mètode. static void procA () {try {System.out.ln ("dins de procA"); llançar el nou RuntimeException ("demostració"); } finalment {System.out.ln ("finalment procAs"); }} // Torna des d’un bloc de prova. static void procB () {try {System.out.ln ("dins de procB"); retorn; } finalment {System.out.ln ("finalment procBs"); }} // Executeu normalment un bloc de prova. static void procC () {try {System.out.ln ("dins de procC"); } finalment {System.out.ln ("finalment procCs"); }} public static void main (String args) {try {procA (); } catch (Exception e) {System.out.ln ("Excepció capturada"); } procB (); procC (); }} // sortida dins procA procA Finalment l’excepció es va capturar a procB procB finalment a procC procC finalment

Definició de Finalize

  • Finalitzar és un mètode d'una classe d'objectes.
  • Un objecte pot contenir alguns recursos que no siguin java, com ara el maneig de fitxers; llavors s’ha d’alliberar abans que es destrueixi.
  • Aquest mètode l’invoca el recollidor d’escombraries abans que destrueixi l’objecte completament.
  • Aquest mètode realitza activitats de neteja de l'objecte abans de ser destruït.

La forma general del mètode finalize () és la següent.


protected void finalize () {// codi de finalització aquí}

El mètode de finalització es declara protegit de manera que no es pot accedir des de fora de la classe.

Aquest mètode sempre s’anomena abans de la recollida d’escombraries.

  1. La paraula clau final és un modificador d’accés, finalment és un bloc i finalitzar és un mètode.
  2. La paraula clau final s’aplica a les classes, variables i mètodes de les classes, finalment és un bloc associat al bloc de captura try que s’utilitza per gestionar excepcions, finalitzar és un mètode que opera només sobre objectes.
  3. La variable un cop declarada com a final es fa constant i no es pot tornar a assignar, un mètode declarat com a final no es pot substituir i la classe un cop declarada final no es pot heretar mai. El bloc final s'utilitza per netejar els recursos utilitzats per intentar capturar el bloc. El mètode de finalització s'utilitza per netejar els recursos utilitzats per un objecte abans que es destrueixi l'objecte.

Conclusió:

Final, finalment i finalize tenen un efecte diferent quan s'aplica sobre un mètode.