Ajánlott, 2024

Szerkesztő Választása

A végső, a végső és a véglegesítés közötti különbség Java-ban

A „végleges, végül és végleges” szavak a Java kontextusában találhatók. Mindegyikük egy másik funkciót biztosít. A végső, végső és a véglegesítés közötti különbség az, hogy a végleges egy hozzáférési módosító, végül egy blokk és véglegesítés egy objektumosztály módszere. A végleges és véglegesítés között vannak más különbségek is, amelyeket az összehasonlító táblázat tárgyal.

Összehasonlító táblázat

Az összehasonlítás alapjaVégsőVégülvéglegesítése
AlapvetőA Final egy "Kulcsszó" és "hozzáférési módosító" a Java-ban.Végül egy "blokk" Java.A véglegesítés egy „módszer” Java-ban.
AlkalmazhatóA döntő az osztályokra, változókra és módszerekre alkalmazható kulcsszó.Végül egy blokk, amely mindig a próbálkozáshoz és a fogási blokkhoz kapcsolódik.a véglegesítés () egy objektumokra alkalmazható módszer.
Dolgozó(1) A végső változó állandóvá válik, és nem rendelhető át.
(2) A végső módszert nem lehet felülírni a gyermekosztály.
(3) A végső osztály nem bővíthető.
A "végül" blokk megtisztítja a "próbálkozás" blokkban használt erőforrásokat.A véglegesítési módszer elvégzi az objektumhoz kapcsolódó tevékenységek törlését a megsemmisítése előtt.
VégrehajtásA végső módszert a hívás után hajtják végre.A "Végül" blokk a "próbálkozás" blokk végrehajtása után hajt végre.a véglegesítés () módszer közvetlenül az objektum megsemmisítése előtt hajtódik végre.

A döntő meghatározása

A „Final” kulcsszó a Java-ban. Ez egy hozzáférési módosító. A „végleges” kulcsszó az osztályok, módszerek és változók esetében alkalmazható. Nézzük meg, hogyan működik mindegyikükkel.

Végső változó

  • Ha egy végső kulcsszót alkalmaznak a változóra, akkor azt nem lehet tovább módosítani.
  • A végleges változót inicializálni kell a bejelentéskor.
  • A közös kódolási egyezményben a végső változókat az UPPERCASE-ban adják meg.
  • Az utolsó változó nem foglal helyet a memóriában.
 végleges int FILE_OPEN = 2; 

Végső módszerek

  • Ha az osztályba tartozó módszert véglegesnek nyilvánítják, az alosztálya nem felülbírálható.
  • A véglegesnek nyilvánított kis módszereket a fordító „inline” -ként teheti meg, ami csökkenti a függvényhívás fölötti értéket és növeli a teljesítménynövelést.
  • A felülbírált módszerek hívása dinamikusan megoldódik, de ha egy módszert véglegesnek nyilvánítanak, nem lehet felülírni. Ezért a függvényhívás a fordítási idő alatt megoldható.
 A osztály {utolsó void meth () {System.out.println ("Ez egy végső módszer."); }} B osztály kiterjeszti az A {void meth () {// Clas B nem örökölheti az A. osztály módszerét. System.out.println ("Nem felülbírálja"); }} 

Végső osztály

  • Ha egy osztályt véglegesnek nyilvánítanak, akkor semmilyen alosztály nem örökölhet.
  • Az osztály véglegesnek nyilvánítása automatikusan véglegesnek nyilvánítja az összes módszert.
  • Nem lehet „absztrakt” és „végleges” osztályt nyilvánítani.
 A végső osztály A {// ...} B osztály kiterjed A {// A B osztály nem örökölheti az A / ... osztályt 

Végül a definíció

  • Java-ban „végül” egy olyan blokk, amely mindig a próba / fogás blokkhoz kapcsolódik.
  • A „végül” blokk a próba / fogás blokk után és a próba / fogás blokk után következik be.
  • A „végül” blokk végrehajtja, hogy a kivételt dobják-e vagy sem.
  • Amikor kivételt dobnak, és egyetlen fogásblokk sem felel meg a kivételnek, akkor a „végleges” blokk végrehajtásra kerül.
  • Amikor egy módszer visszatér a hívóhoz a próbálkozás / fogadás blokk belsejéből egy kivágott kivételen vagy egy kifejezett visszatérési nyilatkozaton keresztül, a „végső” blokk végrehajtása közvetlenül a módszer visszatérése előtt történik.
  • A „végül” blokk az erőforrások tisztítására vagy a „próbálkozás” blokkban használt memória felszabadítására szolgál.
  • A „véglegesen” blokk opcionális, de jó próbálkozni, hogy végül a blokk után írja le a blokkot.
 class EndExample {// Ez a módszer kivételt tesz a módszerből. static void procA () {try {System.out.println ("belső procA"); dobjon új RuntimeException-et ("demo"); } végül {System.out.println ("procA's végül"); }} // Vissza egy kísérleti blokkból. static void procB () {try {System.out.println ("belül procB"); Visszatérés; } végül {System.out.println ("procB's végül"); }} // Rendszeresen hajtson végre egy próbálkozó blokkot. static void procC () {try {System.out.println ("belül a procC"); } végül {System.out.println ("procC's végül"); }} public static void main (String args []) {try {procA (); } catch (Kivétel e) {System.out.println ("Kivétel"); } procB (); procC (); }} // kimenet a procA procA-kban végül A procB procB-k belsejében elért kivétel végül a procC procC-k belsejébe került 

A véglegesítés meghatározása

  • A véglegesítés egy objektumosztály szerinti módszer.
  • Előfordulhat, hogy egy objektum olyan nem-java-erőforrásokat tart, mint a fájlkezelő; akkor el kell szabadítani, mielőtt megsemmisülne.
  • Ezt a módszert a szemétgyűjtő hívja fel, mielőtt teljesen elpusztítja az objektumot.
  • Ez a módszer az objektum tisztítási tevékenységét végzi el, mielőtt megsemmisítené.

A módszer végső formája () a következő.

 védett void finalize () {// véglegesítési kód itt} 

A véglegesítési módszert védettnek nyilvánítják, így az nem érhető el az osztályon kívül.

Ezt a módszert mindig a szemétgyűjtés előtt hívják.

A végső, végül és a véglegesítés közötti különbségek

  1. A végleges kulcsszó hozzáférési módosító, végül egy blokk és véglegesítés egy módszer.
  2. A végleges kulcsszó az osztályok osztályaihoz, változóihoz és módszereihez alkalmazható, végül egy blokk, amely a kivételeket kezelő próbálkozó blokkhoz kapcsolódik, véglegesítés egy olyan módszer, amely csak objektumokon működik.
  3. A véglegesnek nyilvánított változó állandóvá válik, és újra nem rendelhető újra, a véglegesnek nyilvánított módszert nem lehet felülírni, és a végsőnek nyilvánított osztály soha nem örökölhető. A végső blokk a kísérleti blokk által használt erőforrások tisztítására szolgál. A véglegesítési módszer az objektum által használt erőforrások tisztítására szolgál, mielőtt az objektum megsemmisülne.

Következtetés:

A végső, végül és véglegesítésnek más hatása van, ha egy módszerre alkalmazzák.

Top