Alt du trenger å vite om Final, Endelig og Finalize i Java



Denne artikkelen om Final, Endelig og Finaliser i Java vil gi deg en komplett liste over forskjeller mellom Final, Endelig og Finaliser søkeordene sammen med praktiske implementeringer.

Hvis du har noen tidligere erfaring med , da har du kanskje lagt merke til at intervjuerne pleier å stille vanskelige spørsmål som vanligvis hentes fra de grunnleggende konseptene. Et slikt spørsmål som det meste blir stilt er å skille mellom final, final og finalize in . Gjennom mediet i denne artikkelen vil jeg tegne en klar linje mellom final, final og finalisering i Java, som vil hjelpe deg med å få bedre innsikt.

I denne artikkelen vil jeg dekke følgende emner:





Så, la oss komme i gang med det aller første nøkkelordet blant final, endelig og ferdig i Java.

Endelig nøkkelord

I Java er final et nøkkelord som også kan brukes som tilgangsmodifikator. Med andre ord, det siste nøkkelordet brukes til å begrense en brukers tilgang. Den kan brukes i forskjellige sammenhenger som:



  1. Variabel finale
  2. Endelig metode
  3. Avsluttende klasse

For hvert av disse har det endelige nøkkelordet en annen effekt. La oss nå se hvordan det påvirker hver av dem en etter en.

1. Variabel slutt

Når det siste nøkkelordet i brukes med en variabel, felt eller parameter betyr det at når referansen er gitt videre eller instantiasjonen er ferdig, kan ikke verdien endres under gjennomføringen av programmet. I tilfelle a uten at noen verdi er deklarert som endelig, er den kjent som blank / ikke-initialisert sluttvariabel og kan bare initialiseres gjennom en konstruktør.

La oss nå se et eksempel.



offentlig klasse A {int var1 = 123 // erklæring av endelige variabler final int var2 = 345 final int var3 // Prøver å initialisere en tom sluttvariabel var = 555 // Feil A () {var1 = 111 // Ingen feil var2 = 333 // Kompileringsfeil // Initialisering av en tom sluttvariabel var3 = 444 // Ingen feil} // overføring av endelige parametere ugyldig avg (int param1, final int param2) {param1 = 2345 // Ingen feil param2 = 1223 // Compilation Error} // erklære endelige felt ugyldig show () {final int fieldVal = 300000 fieldVal = 400000 // Error}}

Så alt handlet om hvordan det endelige søkeordet påvirker en variabel. La oss nå se hvordan en metode påvirkes av den.

2. Endelig metode

I Java, når en metode blir erklært som endelig, kan den ikke være av hvilken som helst barneklasse gjennom gjennomføringen av programmet.

La oss se et eksempel.

// FINAL METODE klasse A {final void method_abc () {System.out.println ('This is a Final method and cannot be overridden')} void method_xyz () {System.out.println ('Dette er en normal metode og kan overstyres ')}} klasse B utvider A {void method_abc {// Compile Time Error} void method_xyz () {System.out.println (' Dette er en overstyrt metode i klasse B ')}}

Inntil nå har du allerede sett resultatene av å erklære en variabel og en metode endelig, la oss nå gå videre og se hva som skjer når en klasse blir erklært som endelig i Java.

3. Avsluttende klasse

Hver gang en klasse blir erklært som endelig i Java, kan den ikke være i Java . Dette skyldes at når en klasse er erklært som endelig, vil alle datamedlemmene og metodene i klassen implisitt bli erklært som endelige. Når en klasse er erklært som endelig, kan den ikke lenger erklæres som abstrakt. Med andre ord kan en klasse være en av de to, endelig eller abstrakt.

La oss se et eksempel.

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

Jeg håper nå, du har klart forstått hvordan det endelige nøkkelordet fungerer. Så la oss nå gå videre med denne artikkelen om endelig, endelig og avslutt i Java for å finne ut hvilken rolle endelig søkeord.

Endelig blokk

Endelig er det i Java en valgfri blokk som brukes til . Det er vanligvis innledes med en prøvefangstblokk. Til slutt brukes blokk for å utføre en viktig kode, slik som ressursopprydding eller frigjør minnebruk, etc. En endelig blokk vil bli utført uavhengig av om et unntak håndteres eller ikke. Dermed blir innpakking av oppryddingskodene i en endelig blokk betraktet som en god praksis. Du kan også bruke den med en prøveblokk uten å trenge noen fangstblokk sammen med den.

La oss nå se et eksempel på det samme.

klasse A {public static void main (String args []) {try {System.out.println ('Try Block') throw new Exception ()} catch (Exception e) {System.out.println ('Catch Block') } endelig {System.out.println ('Endelig blokk')}}}

Inntil nå har jeg allerede diskutert de siste og til slutt nøkkelordene i Java. La oss nå kaste litt lys over det siste nøkkelordet blant de tre det vil si, fullføre nøkkelordet i Java.

Fullfør metoden

Finalize er en beskyttet ikke-statisk metode som er definert i Object-klassen og dermed er tilgjengelig for alle objektene i Java.Denne metoden erkalt av søppeloppsamleren før en gjenstand blir fullstendig ødelagt.Som noen ganger,en må kanskje fullføre noen viktige oppgaver som å lukke en åpen forbindelse, frigjøre en ressurs osv. før den blir ødelagt. Hvis disse oppgavene ikke er utført, kan det redusere effektiviteten i programmet. Dermed er densøppeloppsamler kaller det for gjenstandene som det ikke er referert til lenger og som er merket for søppeloppsamling.

Denne metoden er erklært beskyttet for å begrense bruken utenfor klassen. Men du kan overstyre den fra klassen for å definere egenskapene på tidspunktet for søppeloppsamling.

lære å bruke visuelt studio

La oss se et eksempel på det samme.

offentlig klasse A {public void finalize () kaster Throwable {System.out.println ('Object is ødelagt av Garbage Collector')} public static void main (String [] args) {Edureka test = new Edureka () test = null System.gc ()}}

Med dette kommer vi til en slutt på denne artikkelen om final, final og finalisering i Java. For å konkludere med dette, har jeg lagt til en sammenligning mellom alle de tre søkeordene som vil hjelpe deg med å hente de store forskjellene på et øyeblikk.

Sammenligningstabell - Endelig vs Endelig vs Fullfør nøkkelord i Java

Faktor Endelig Til slutt Fullfør
Definisjon Final er et nøkkelord og brukes som tilgangsmodifikator i JavaEndelig er en blokk i Java brukt til Exception HandlingFinalize er en metode i Java som brukes til søppelinnsamling
applikasjon Final i Java brukes med variabler, metoder og klasser for å angi tilgangstillatelserTil slutt brukes blokk sammen med en prøve og fangst-blokkFinalize-metoden i Java brukes med objekter som ikke lenger er i bruk
Funksjon Endelig variabel i Java er en konstant hvis verdi ikke kan endres når den er tildelt.

Den endelige metoden i Java kan ikke overstyres av barneklassene.

Endelig klasse i Java kan ikke arves av noen barneklasse.

Til slutt hjelper blokk i Java med å rydde opp i ressursene som har blitt brukt i prøveblokkenFinalize-metoden hjelper til med å rydde opp i aktiviteter for gjenstanden før den blir ødelagt av søppeloppsamleren
Henrettelse Den kjøres når den påkalles av kompilatorenUtfører rett etter utførelse av prøvefangstblokkDen kjøres like før et objekt blir ødelagt

Jeg håper gjennom denne Finalen, Endelig og Finaliseringen i Java, var jeg i stand til å fjerne konseptene og hjalp deg med å tilføre din kunnskap verdi.

Hvis du fant denne artikkelen om “Final, Endelig og Finalize i Java ' relevant, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet til dette Final, Endelig og Finaliser i Java og vi kommer tilbake til deg.