Skillnaden mellan Final, Final och Finalize i Java

Författare: Laura McKinney
Skapelsedatum: 2 April 2021
Uppdatera Datum: 11 Maj 2024
Anonim
Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.
Video: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.

Innehåll


Orden "final, final and finalize" ligger inom Java. Var och en av dem har olika funktioner. Den grundläggande skillnaden mellan final, slutligen och finalisering är den slutlig är en åtkomstmodifierare, till sist är ett block och avsluta är en metod för en objektklass. Det finns några andra skillnader mellan slutliga, slutliga och slutgiltiga som diskuteras i jämförelsetabellen.

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram

Grund för jämförelseSlutligTill sistAvsluta
GrundläggandeFinal är ett "nyckelord" och "åtkomstmodifierare" i Java.Äntligen är ett "block" i Java.Finalize är en "metod" i Java.
TillämpligFinal är ett nyckelord som gäller klasser, variabler och metoder.Slutligen är ett block som alltid är associerat med try and catch block.finalize () är en metod som är tillämplig på objekt.
Arbetssätt(1) Slutvariabeln blir konstant, och den kan inte tilldelas om.
(2) En slutlig metod kan inte åsidosättas av barnklassen.
(3) Final Class kan inte förlängas.
Ett "slutligen" -block, rensa upp resurserna som används i "försök" -blocket.Avslutningsmetoden utför rensar upp aktiviteter relaterade till objektet innan det förstörs.
AvrättningDen slutliga metoden körs vid samtalet."Slutligen" -block exekveras precis efter genomförandet av "try-catch" -block.finalize () -metoden körs precis innan objektet förstörs.


Definition av final

“Final” är ett nyckelord i Java. Det är en åtkomstmodifierare. Det "sista" nyckelordet är tillämpligt på klasser, metoder och variabler. Låt oss se hur det fungerar med var och en av dem.

Slutvariabel

  • När ett slutligt nyckelord används på variabeln kan det inte ändras ytterligare.
  • En slutlig variabel måste initialiseras när den deklareras.
  • I en vanlig kodningskonvention deklareras slutvariabler i UPPERCASE.
  • Den sista variabeln upptar inte minnet per instansbasis.

sista int FILE_OPEN = 2;

Slutliga metoder

  • När en metod i klassen förklaras som slutlig kan den inte åsidosättas av dess underklass.
  • Små metoder som förklaras som slutgiltiga kan göras "inline" av kompilatorn vilket kommer att minska omkostningen för funktionssamtal och öka prestandaförbättringarna.
  • Överordnade metoder ringer, löses dynamiskt, men när en metod förklaras som slutlig kan den inte åsidosättas. Följaktligen kan funktionssamtalet lösas vid sammanställningstidpunkten.

klass A {final void meth () {System.out.ln ("Detta är en slutlig metod."); }} klass B utökar A {void meth () {// Clas B kan inte ärva metoden för klass A. System.out.ln ("Överträffar inte"); }}

Slutklass

  • När en klass förklaras som slutlig kan den inte ärvas av någon underklass.
  • Att förklara en klass som slutlig förklarar automatiskt alla dess metoder som slutgiltiga.
  • Du kan inte förklara en klass som både "abstrakt" och "slutlig".

finalklass A {// ...} klass B utökar A {// Klass B kan inte ärva klass A // ...}

  • I Java är "äntligen" ett block som alltid är associerat med try / catch-blocket.
  • "Slutligen" -blocket körs efter try / catch-blocket och före koden efter try / catch-blocket.
  • Blocket "slutligen" kommer att exekvera om undantaget kastas eller inte.
  • När ett undantag kastas, och inget fångstblock matchar undantaget även då, körs "slutligen" -blocket.
  • När en metod återvänder till den som ringer inifrån try / catch-blocket via ett oöverträffat undantag eller ett uttryckligt return-uttalande, körs "slutligen" -blocket precis innan metoden återgår till den som ringer.
  • "Slutligen" -blocket används för att rensa upp resurserna eller frigöra minnet som används i "försök" -blocket.
  • "Slutligen" -blocket är valfritt, men det är en bra praxis att skriva slutligen blocket efter test / fångst-blocket.

klass Slutligen Exempel {// Denna metod kastar ett undantag från metoden. static void procA () {try {System.out.ln ("inuti procA"); kasta ny RuntimeException ("demo"); } slutligen {System.out.ln ("procAs äntligen"); }} // Gå tillbaka från ett försöksblock. static void procB () {prova {System.out.ln ("inuti procB"); lämna tillbaka; } slutligen {System.out.ln ("procBs äntligen"); }} // Kör ett försöksblock normalt. static void procC () {försök {System.out.ln ("inuti procC"); } slutligen {System.out.ln ("procCs äntligen"); }} public static void main (String args) {try {procA (); } catch (Undantag e) {System.out.ln ("Undantag fångad"); } procB (); procC (); }} // output in procA procAs slutligen Undantag fångas in procB procBs äntligen inuti procC procC's äntligen

Definition av slutföra

  • Finalize är en metod i en objektklass.
  • Ett objekt kan innehålla vissa resurser som inte är java, t.ex. filhandtag; då måste den frigöras innan den förstörs.
  • Denna metod åberopas av avfallssamlaren innan den förstör objektet fullständigt.
  • Denna metod utför saneringsaktiviteter för objektet innan det förstörs.

Den allmänna formen för metoden slutföra () är som följer.


Protected void finalize () {// finaliseringskod här}

Slutföringsmetoden förklaras som skyddad så att den inte kan nås utanför klassen.

Denna metod kallas alltid före sopor.

  1. Nyckelordet final är en åtkomstmodifierare, slutligen är ett block och slutföra är en metod.
  2. Nyckelordet final är tillämpligt på klasserna, variablerna och metoderna för klasserna, slutligen är ett block associerat med try catch catch-blocket som används för att hantera undantag, finalize är en metod som bara fungerar på objekt.
  3. Variabelen när deklarerats som slutgiltig blir konstant och kan inte tilldelas igen, en metod som deklareras som slutgiltig kan inte åsidosättas och klass en gång deklarerats som slutlig kan aldrig ärvas. Det slutliga blocket används för att rensa upp resurserna som används av försök och fångstblock. Slutföringsmetoden används för att rensa upp resurserna som används av ett objekt innan objektet förstörs.

Slutsats:

Final, slutligen och finalisering har en annan effekt när den tillämpas på en metod.