Anbefalt, 2024

Redaksjonens

Forskjellen mellom slutt, slutt og slutt på Java

Ordene "endelig, endelig og slutt" ligger i sammenheng med Java. Hver og en av dem får en annen funksjon. Den grunnleggende forskjellen mellom slutt, endelig og slutt er den endelige er en tilgang modifikator, endelig er en blokk og slutt er en metode for en objektklasse. Det er noen andre forskjeller mellom slutt, endelig og slutt, som diskuteres i sammenligningstabellen.

Sammenligningstabel

Grunnlag for sammenligningEndeligEndeligFerdig
grunn~~POS=TRUNCEndelig er et "Søkeord" og "tilgang modifikator" i Java.Endelig er en "blokk" i Java.Finalisere er en "metode" i Java.
AktueltEndelig er et søkeord som gjelder for klasser, variabler og metoder.Endelig er en blokk som alltid er forbundet med prøve og fangst blokk.ferdigstille () er en metode som gjelder for objekter.
Arbeider(1) Endelig variabel blir konstant, og den kan ikke omfordeles.
(2) En endelig metode kan ikke overstyres av barneklassen.
(3) Endelig klasse kan ikke forlenges.
En "endelig" blokk, rydd opp ressursene som brukes i "prøve" blokk.Fullfør metoden utfører rydder opp aktiviteter knyttet til objektet før ødeleggelsen.
HenrettelseEndelig metode utføres ved samtalen."Endelig" blokk utfører rett etter utførelsen av "try-catch" -blokk.finalize () -metoden kjøres rett før ødeleggelsen av objektet.

Definisjon av endelig

"Final" er et søkeord i Java. Det er en tilgang modifikator. Det "siste" søkeordet gjelder for klassene, metodene og variablene. La oss se hvordan det fungerer med hver av dem.

Endelig variabel

  • Når et siste søkeord brukes til variabelen, kan det ikke endres ytterligere.
  • En endelig variabel må initialiseres når den er erklært.
  • I en felles kodende konvensjon er de endelige variablene deklarert i UPPERCASE.
  • Den endelige variabelen tar ikke opp minne på en per-basis basis.
 siste int FILE_OPEN = 2; 

Endelige metoder

  • Når en metode i klassen er erklært som endelig, kan den ikke overskrides av sin underklasse.
  • Små metoder som er deklarert endelige, kan gjøres "inline" av kompilatoren som vil redusere overhead for funksjonssamtaler og øke ytelsesforbedringer.
  • Overstyrte metoder kalles, løses dynamisk, men når en metode er erklært som endelig, kan den ikke overstyres. Derfor kan funksjonsanropet løses ved kompileringstid.
 klasse A {final void meth () {System.out.println ("Dette er en endelig metode."); }} klasse B strekker seg A {void meth () {// Clas B kan ikke arve metoden i klasse A. System.out.println ("Overstyrer ikke"); }} 

Endelig klasse

  • Når en klasse er erklært som endelig, kan den ikke arves av noen underklasse.
  • Deklarere en klasse som endelige, vil automatisk deklarere alle metodene sine endelige.
  • Du kan ikke erklære en klasse som både "abstrakt" og "endelig".
 siste klasse A {// ...} klasse B strekker seg A {// klasse B kan ikke arve klasse A // ...} 

Definisjon av endelig

  • I Java er "endelig" en blokk som alltid er knyttet til prøve / fangstblokken.
  • Den "endelig" blokk utføres etter prøve / fangstblokken og før koden følger prøve / fangstblokk.
  • Den "endelig" blokk vil utføre om unntaket kastes eller ikke.
  • Når et unntak kastes, og ingen fangstblokk samsvarer med unntaket selv da, blir "endelig" blokken utført.
  • Når en metode returnerer til den som ringer fra innsiden av prøve / fangstblokken via et uncaught unntak eller en eksplisitt avkastningsoppgave, blir "endelig" blokken utført umiddelbart før metoden vender tilbake til den som ringer.
  • Den "endelig" blokken brukes til å rydde opp ressursene eller frigjøre minnet som brukes i "prøve" -blokken.
  • Den "endelig" blokken er valgfri, men det er en god øvelse å skrive til slutt blokkere etter prøve / fangstblokken.
 klasse Endelig Eksempel {// Denne metoden kaster et unntak ut av metoden. statisk tomrom procA () {prøv {System.out.println ("inside procA"); kaste nye RuntimeException ("demo"); } endelig {System.out.println ("procA's finally"); }} // Gå tilbake fra en prøveblokk. statisk tomt procB () {prøv {System.out.println ("inside procB"); komme tilbake; } endelig {System.out.println ("procB's finally"); }} // Utfør en prøveblokk normalt. statisk tomt procC () {prøv {System.out.println ("inside procC"); } endelig {System.out.println ("procC's finally"); }} offentlig statisk tomrom hoved (String args []) {prøv {procA (); } fangst (Unntak e) {System.out.println ("Unntatt fanget"); } procB (); procc (); }} // utgang inne procA procAs slutt Unntak fanget inne procB procB er endelig inne procC procC er endelig 

Definisjon av slutt

  • Finalisere er en metode i en objektklasse.
  • Et objekt kan inneholde noen ikke-java ressurser, for eksempel filhåndtak; da må det frigjøres før det blir ødelagt.
  • Denne metoden påberopes av søppelsamleren før den ødelegger objektet helt.
  • Denne metoden utfører opprydding av objektet før det blir ødelagt.

Den generelle formen for metoden avsluttes () er som følger.

 beskyttet tomrom avsluttes () {// ferdigstillelseskode her} 

Den avsluttende metoden er erklært som beskyttet slik at den ikke kan nås utenfor klassen.

Denne metoden kalles alltid før søppelsamlingen.

Viktige forskjeller mellom slutt, slutt og slutt

  1. Søkeordet endelig er en tilgang modifikator, endelig er en blokk og sluttføre er en metode.
  2. Søkeordets endelige gjelder for klassene, variablene og metodene til klassene, til slutt er en blokk assosiert med prøvefangstblokken som brukes til å håndtere unntak, endelig er en metode som kun fungerer på objekter.
  3. Variabelen en gang erklært som endelig blir konstant og kan ikke omfordeles igjen, en metode som er oppgitt som endelig, kan ikke overstyres, og klassen en gang erklært som endelig, kan aldri bli arvet. Endelig blokk er brukt til å rydde opp ressursene som brukes av prøve og fangst blokk. Den ferdige metoden brukes til å rydde opp ressursene som brukes av et objekt før objektet blir ødelagt.

Konklusjon:

Endelig, endelig og slutt, har en annen effekt når den brukes på en metode.

Top