Forskellen mellem Final, Endelig og Finalize i Java

Forfatter: Laura McKinney
Oprettelsesdato: 2 April 2021
Opdateringsdato: 15 Kan 2024
Anonim
Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.
Video.: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.

Indhold


Ordene "endelig, endelig og afsluttende" ligger inden for Java-forholdet. Hver af dem får en anden funktion. Den grundlæggende forskel mellem final, endelig og finalisering er den endelige er en adgangsmodifikator, endelig er en blok og færdiggøre er en metode til en objektklasse. Der er nogle andre forskelle mellem endelig, endelig og afsluttet, som diskuteres i sammenligningstabellen.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningFinalEndeligAfslut
GrundlæggendeFinal er et "Nøgleord" og "adgangsmodifikator" i Java.Endelig er en "blok" i Java.Finalize er en "metode" i Java.
AnvendeligFinal er et nøgleord, der gælder for klasser, variabler og metoder.Endelig er en blok, der altid er forbundet med try and catch-blok.finalize () er en metode, der kan anvendes til objekter.
Arbejder(1) Den endelige variabel bliver konstant, og den kan ikke tildeles igen.
(2) En endelig metode kan ikke tilsidesættes af barneklassen.
(3) Final Class kan ikke forlænges.
En "endelig" blokering, rydde op i ressourcerne, der bruges i "prøv" -blok.Færdiggørelsesmetode udfører renser op aktiviteter, der er relateret til objektet, før det ødelægges.
UdførelseDen endelige metode udføres ved dens opkald."Endelig" -blok køres lige efter udførelsen af ​​"try-catch" -blok.finalize () -metoden udføres lige før ødelæggelsen af ​​objektet.


Definition af finalen

“Final” er et nøgleord i Java. Det er en adgangsmodifikator. Det "endelige" nøgleord gælder for klasser, metoder og variabler. Lad os se, hvordan det fungerer med hver enkelt af dem.

Endelig variabel

  • Når et endeligt nøgleord anvendes til variablen, kan det ikke ændres yderligere.
  • En sidste variabel skal initialiseres, når den deklareres.
  • I en fælles kodningskonvention erklæres de endelige variabler i UPPERCASE.
  • Den endelige variabel optager ikke hukommelse pr. Instans-basis.

endelig int FILE_OPEN = 2;

Afsluttende metoder

  • Når en metode i klassen erklæres som endelig, kan den ikke tilsidesættes af dens underklasse.
  • Små metoder, der erklæres for endelige, kan gøres "inline" af kompilatoren, hvilket reducerer omkostningen af ​​funktionskald og øger ydelsesforbedringerne.
  • Overstyrede metoder kalder op, løses dynamisk, men når en metode erklæres som endelig, kan den ikke tilsidesættes. Derfor kan funktionskaldet løses på kompileringstidspunktet.

klasse A {final void meth () {System.out.ln ("Dette er en endelig metode."); }} klasse B udvider A {void meth () {// Clas B kan ikke arve metoden til klasse A. System.out.ln ("Ikke tilsidesætter"); }}

Afsluttende klasse

  • Når en klasse erklæres som endelig, kan den ikke arves af nogen underklasse.
  • At erklære en klasse som endelig vil automatisk erklære alle dens metoder endelige.
  • Du kan ikke erklære en klasse som både "abstrakt" og "endelig".

sidste klasse A {// ...} klasse B udvider A {// Klasse B kan ikke arve klasse A // ...}

  • I Java er "endelig" en blok, der altid er knyttet til try / catch-blokken.
  • "Endelig" -blok køres efter try / catch-blokken og før koden efter try / catch-blok.
  • "Endelig" -blokken udføres, om undtagelsen kastes eller ej.
  • Når en undtagelse kastes, og ingen fangstblok matcher undtagelsen selv da, udføres “endelig” -blokken.
  • Når en metode vender tilbage til den, der ringer fra inde i try / catch-blokken via en uslået undtagelse eller en eksplicit return-erklæring, udføres “endelig” -blokken lige inden metoden vender tilbage til den, der ringer.
  • "Endelig" -blokken bruges til at rydde op i ressourcerne eller frigøre den hukommelse, der bruges i "prøve" -blokken.
  • "Endelig" -blokken er valgfri, men det er en god praksis at skrive endelig blok efter try / catch-blokken.

klasse Endelig eksempel {// Denne metode kaster en undtagelse fra metoden. statisk ugyldig procA () {try {System.out.ln ("inde procA"); kaste ny RuntimeException ("demo"); } endelig {System.out.ln ("procAs endelig"); }} // Vend tilbage fra en prøveblok. statisk ugyldig procB () {prøv {System.out.ln ("inde procB"); Vend tilbage; } endelig {System.out.ln ("procBs endelig"); }} // Udfør en prøveblok normalt. statisk ugyldig procC () {try {System.out.ln ("inden i procC"); } endelig {System.out.ln ("procCs endelig"); }} public static void main (String args) {try {procA (); } fangst (undtagelse e) {System.out.ln ("Undtagelse fanget"); } procB (); procC (); }} // output inden for procA procAs endelig undtagelse fanget inde i procB procB's endelig inde i procC procC's endelig

Definition af færdiggørelse

  • Finalize er en metode i en objektklasse.
  • Et objekt kan have nogle ikke-java ressourcer, såsom filhåndtering; så skal det frigøres, før det ødelægges.
  • Denne metode påberåbes af affaldsopsamleren, før den ødelægger genstanden fuldstændigt.
  • Denne metode udfører oprydningsaktiviteter for objektet, før det ødelægges.

Den generelle form for metoden færdiggøres () er som følger.


beskyttet tomrum afslutte () {// finaliseringskode her}

Færdiggørelsesmetoden erklæres som beskyttet, så den ikke kan fås adgang til uden for klassen.

Denne metode kaldes altid inden affaldssamlingen.

  1. Nøgleordet final er en adgangsmodifikator, endelig er en blok, og færdiggørelse er en metode.
  2. Nøgleordet final er relevant for klasser, variabler og metoder for klasserne, endelig er en blok tilknyttet try catch-blokken, der bruges til at håndtere undtagelser, finalize er en metode, der kun fungerer på objekter.
  3. Variabelen, når den først er erklæret som endelig, bliver konstant og kan ikke tildeles igen, en metode, der er erklæret som endelig, kan ikke tilsidesættes, og klasse, der først er erklæret som endelig, kan aldrig arves. Den endelige blok bruges til at rydde op i de ressourcer, der bruges ved at prøve og fange blok. Finaliseringsmetoden bruges til at rydde op i de ressourcer, der bruges af et objekt, før objektet ødelægges.

Konklusion:

Endelig, endelig og afsluttende har en anden effekt, når det anvendes på en metode.