Allt du behöver veta om Final, slutligen och finalisera i Java



Den här artikeln om Final, Final och Finalize i Java ger dig en fullständig lista över skillnader mellan Final, Final och Finalize-nyckelorden tillsammans med praktiska implementeringar.

Om du har tidigare erfarenhet av , då kanske du har märkt att intervjuarna tenderar att ställa knepiga frågor som vanligtvis plockas upp från de grundläggande begreppen. En sådan fråga som oftast ställs är att skilja mellan final, final och finalize in . Genom denna artikel kommer jag att rita en tydlig linje mellan final, final och final i Java som hjälper dig att få bättre insikter.

I den här artikeln kommer jag att behandla följande ämnen:





Så låt oss komma igång med det allra första nyckelordet bland final, slutligen och slutför i Java.

Sista nyckelordet

I Java är final ett nyckelord som också kan användas som en åtkomstmodifierare. Med andra ord används det slutliga nyckelordet för att begränsa en användares åtkomst. Den kan användas i olika sammanhang som:



  1. Variabel final
  2. Slutlig metod
  3. Slutlig klass

För vart och ett av dessa har det sista nyckelordet en annan effekt. Låt oss nu se hur det påverkar var och en av dem en efter en.

1. Variabel slut

Närhelst det sista sökordet i används med en variabel, fält eller parameter betyder det att när referensen har vidarebefordrats eller instantieringen är klar kan dess värde inte ändras under hela genomförandet av programmet. Om a utan att något värde har förklarats som slutligt är det känt som tom / oinitialiserad slutlig variabel och kan endast initieras via en konstruktör.

Låt oss nu se ett exempel.



offentlig klass A {int var1 = 123 // deklarera slutliga variabler final int var2 = 345 final int var3 // Försöker initiera en tom slutlig variabel var = 555 // Fel A () {var1 = 111 // Inget fel var2 = 333 // Kompileringsfel // Initiering av en tom slutlig variabel var3 = 444 // Inget fel} // överföring av slutparametrar ogiltig avg (int param1, final int param2) {param1 = 2345 // Inget fel param2 = 1223 // Kompileringsfel} // förklarar slutliga fält ogiltiga visa () {final int fieldVal = 300000 fieldVal = 400000 // Error}}

Så det handlade om hur det slutliga sökordet påverkar en variabel. Låt oss nu se hur en metod påverkas av den.

2. Slutlig metod

I Java, när en metod förklaras som slutlig, kan den inte vara av alla barnklasser under hela genomförandet av programmet.

Låt oss se ett exempel.

// FINAL METHOD class A {final void method_abc () {System.out.println ('This is a Final method and cannot be overridden')} void method_xyz () {System.out.println ('Detta är en normal metod och kan åsidosättas ')}} klass B utökar A {void method_abc {// Compile Time Error} void method_xyz () {System.out.println (' Detta är en åsidosatt metod i klass B ')}}

Hittills har du redan sett resultaten av att förklara en variabel och en metod slutgiltig, låt oss nu gå längre och se vad som händer när en klass förklaras som slutlig i Java.

3. Slutlig klass

I Java, när en klass förklaras som slutlig, kan den inte vara . Detta beror på att när en klass har förklarats slutlig kommer alla datamedlemmar och metoder som ingår i klassen implicit att förklaras som slutliga. När en klass väl förklarats som slutlig kan den inte längre förklaras som abstrakt. Med andra ord kan en klass vara någon av de två, slutgiltiga eller abstrakta.

Låt oss se ett exempel.

// FINAL CLASS final class A {// class body} class B extends A {// Compilation Error // class body}

Jag hoppas att du nu har klart förstått hur det slutliga nyckelordet fungerar. Så, låt oss nu gå vidare med den här artikeln om final, final och final i Java för att ta reda på rollen som nyckelord äntligen.

Slutligen blockera

I Java är slutligen ett valfritt block som används för . Det föregås vanligtvis av ett försök-fångst-block. Slutligen används block för att utföra en viktig kod såsom resursrensning eller frigöra minnesanvändning etc. Ett slutligen block kommer att utföras oavsett om ett undantag hanteras eller inte. Sålunda anses inpackning av saneringskoder i ett slutligt block vara en god praxis. Du kan också använda den med ett försöksblock utan att behöva fångstblock tillsammans med det.

Låt oss nu se ett exempel på detsamma.

klass A {public static void main (String args []) {try {System.out.println ('Try Block') throw new Exception ()} catch (Exception e) {System.out.println ('Catch Block') } slutligen {System.out.println ('Slutligen blockera')}}}

Hittills har jag redan diskuterat de slutliga och slutligen nyckelorden i Java. Låt oss nu kasta lite ljus över det sista nyckelordet bland de tre, det vill säga slutföra nyckelordet i Java.

Slutför metod

Finalize är en skyddad icke-statisk metod som definieras i Object-klassen och därmed är tillgänglig för alla objekt i Java.Denna metod ärkallas av sopuppsamlaren innan ett föremål förstörs helt.Som ibland,ett kan behöva slutföra någon viktig uppgift som att stänga en öppen anslutning, frigöra en resurs osv innan den förstörs. Om dessa uppgifter inte utförs kan det minska programmets effektivitet. Således är denskräpsamlare kallar det för de objekt som inte längre refereras till och som har markerats för skräpsamling.

Denna metod förklaras skyddad för att begränsa dess användning utanför klassen. Men du kan åsidosätta den från klassen för att definiera dess egenskaper vid tidpunkten för skräpsamlingen.

sortera en matris i c ++ - programmet

Låt oss se ett exempel på detsamma.

offentlig klass A {public void finalize () kastar Throwable {System.out.println ('Objekt förstörs av Garbage Collector')} public static void main (String [] args) {Edureka test = new Edureka () test = null System.gc ()}}

Med detta kommer vi till slutet av den här artikeln om final, final och final i Java. För att avsluta detta har jag lagt till en jämförelse mellan alla de tre nyckelorden som hjälper dig att snabbt få fram de stora skillnaderna.

Jämförelsetabell - Final vs slutligen vs Finalize Keywords in Java

Faktor Slutlig Till sist Avsluta
Definition Final är ett nyckelord och används som åtkomstmodifierare i JavaSlutligen är ett block i Java som används för undantagshanteringFinalize är en metod i Java som används för Garbage Collection
Ansökan Final i Java används med variabler, metoder och klasser för att ställa in åtkomstbehörigheterSlutligen används block tillsammans med ett försök och fångstblockFinalize-metoden i Java används med objekt som inte längre används
Fungera Slutlig variabel i Java är en konstant vars värde inte kan ändras när den har tilldelats.

Slutlig metod i Java kan inte åsidosättas av dess underklasser.

Slutlig klass i Java kan inte ärvas av någon barnklass.

Slutligen hjälper block i Java till att städa upp de resurser som har använts i försöksblocketFinalize-metoden hjälper till att städa upp aktiviteter för objektet innan det förstörs av sopuppsamlaren
Avrättning Den körs när den anropas av kompilatornKörs direkt efter körning av try-catch blockDet körs precis innan ett objekt förstörs

Jag hoppas att genom denna Final, Final och Finalize i Java kunde jag rensa begreppen och hjälpte dig att tillföra värde till din kunskap.

Om du hittade den här artikeln om “Final, slutligen och Finalize i Java ' relevant, kolla in av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Har du en fråga till oss? Vänligen nämna det i kommentarfältet i detta Final, Final och Finalize i Java så återkommer vi till dig.