A Java, a Final, a Final és a Finalize közötti különbség

Szerző: Laura McKinney
A Teremtés Dátuma: 2 Április 2021
Frissítés Dátuma: 15 Lehet 2024
Anonim
A Java, a Final, a Final és a Finalize közötti különbség - Technológia
A Java, a Final, a Final és a Finalize közötti különbség - Technológia

Tartalom


A „végleges, végül és véglegesítés” szavak a Java nyelvén rejtenek. Mindegyikük eltérő működést biztosít. Az alapvető különbség a végleges és a véglegesítés között az végső hozzáférés-módosító, végül egy blokk és véglegesítése egy objektumosztály egyik módszere. Van néhány más különbség a végleges, a végleges és a véglegesítés között, amelyeket az összehasonlítási táblázat ismertet.

  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Következtetés

Összehasonlító táblázat

Az összehasonlítás alapjaVégsőVégülLezárás
AlapvetőA Final egy "kulcsszó" és "hozzáférés-módosító" Java-ban.Végül egy "blokk" a Java-ban.A véglegesítés egy "módszer" a Java-ban.
AlkalmazhatóA Final egy osztályra, változóra és módszerre alkalmazható kulcsszó.Végül egy olyan blokk, amely mindig társul a try and catch blokkhoz.Az finalize () egy objektumokra alkalmazható módszer.
Dolgozó(1) A végső változó állandóvá válik, és nem lehet hozzárendelni.
(2) A végső módszert a gyermekosztály felülbírálja.
(3) A döntő osztály nem hosszabbítható meg.
"Végül" blokk, tisztítsa meg a "try" blokkban használt erőforrásokat.A véglegesítési módszer végrehajtja az objektumhoz kapcsolódó tevékenységek megsemmisítését megelőzően.
VégrehajtásA végleges módszer a hívása után kerül végrehajtásra.A "Végül" blokk közvetlenül a "try-catch" blokk végrehajtása után fut.A finalize () metódus közvetlenül az objektum megsemmisítése előtt hajtódik végre.


A végleges meghatározása

Az „utolsó” kulcsszó a Java-ban. Ez egy hozzáférés-módosító. Az „utolsó” kulcsszó alkalmazható az osztályokra, módszerekre és változókra. Nézzük meg, hogyan működik mindegyikükkel.

Végleges változó

  • Ha egy végső kulcsszót alkalmaznak a változóra, akkor azt nem lehet tovább módosítani.
  • A végső változót inicializálni kell, amikor deklarálják.
  • Egy általános kódolási konvencióban a végső változókat FELKÖZÖS formában deklarálják.
  • A végső változó nem foglal el memóriát egy példányonként.

végleges int FILE_OPEN = 2;

Végső módszerek

  • Ha az osztályban alkalmazott módszert véglegesnek nyilvánítják, akkor az alosztálya nem bírálhatja felül.
  • A véglegesnek nyilvánított kisméretű módszereket a fordító „inline” -re teheti, amely csökkenti a funkcióhívás általános költségeit és növeli a teljesítményjavításokat.
  • A felülbírált módszerek meghívása dinamikusan oldódik meg, de ha egy módszert véglegesnek nyilvánítanak, akkor azt nem lehet felülbírálni. Ezért a függvényhívás fordítási időben oldható meg.

A osztály {final void meth () {System.out.ln ("Ez egy végleges módszer."); }} A B osztály kiterjeszti a {void meth () {// A B osztály nem örökölheti az A osztály módszerét. System.out.ln ("Nem írja felül"); }}

Záró osztály

  • Ha egy osztályt véglegesnek nyilvánítanak, akkor azt egyetlen alosztály sem örökli.
  • Az osztály véglegesnek nyilvánítása automatikusan minden módszert véglegesnek nyilvánít.
  • Az osztályt nem lehet absztraktnak és véglegesnek egyaránt kijelenteni.

A végső osztály {// ...} B osztály kiterjeszti az A osztályt {// B osztály nem örökölheti az A osztályt ... ...}

  • A Java-ban az „végül” egy olyan blokk, amelyet mindig társítanak a try / catch blokkhoz.
  • A „végül” blokk a try / catch blokk után és a try / catch blokkot követő kód előtt hajtódik végre.
  • A „végül” blokk végrehajtja függetlenül attól, hogy a kivételt eldobják-e vagy sem.
  • Ha kivétel történik, és egyetlen fogási blokk sem felel meg a kivételnek, akkor a „végül” blokk kerül végrehajtásra.
  • Amikor egy módszer visszatér a hívó félhez a próbálkozás / elkapás blokkból egy nem fogott kivétel vagy kifejezett visszatérési nyilatkozat útján, akkor a „végül” blokk kerül végrehajtásra, mielőtt a módszer visszatérne a hívóhoz.
  • A „végül” blokk az erőforrások megtisztításához vagy a „try” blokkban használt memória felszabadításához szolgál.
  • A „végül” mondat nem kötelező, de jó gyakorlat, ha a try / catch blokk után végül blokkot írunk.

osztályEgyszerű példája {// Ez a módszer kivételt jelenít meg a módszerből. statikus érvénytelen procA () {próbáld {System.out.ln ("procA belsejében"); dobjon új RuntimeException ("demo"); } végül {System.out.ln ("procAs végül"); }} // Visszatérés egy próbablokkból. statikus érvénytelen procB () {próbáld {System.out.ln ("procB belsejében"); Visszatérés; } végül {System.out.ln ("procBs végül"); }} // A próbablokkot normál módon hajtsa végre. statikus érvénytelen procC () {próbáld {System.out.ln ("procC belül"); } végül {System.out.ln ("procCs végül"); }} nyilvános statikus void main (karakterláncok) {próbáld {procA (); } fogás (e kivétel) {System.out.ln ("kivétel fogva"); } procB (); procC (); }} // kimenet a procA procA-ban végül Kivétel: a procB-ben belül procB procB-ben végre a procC procC-ben

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

  • A véglegesítés egy módszer az objektum osztályban.
  • Lehet, hogy egy objektum nem-java erőforrásokat tartalmaz, például fájlkezelőt; akkor meg kell szabadítani, mielőtt elpusztulna.
  • Ezt a módszert a hulladékgyűjtő alkalmazza, mielőtt az objektumot teljesen megsemmisíti.
  • Ez a módszer megtisztítási tevékenységeket hajt végre az objektum megsemmisítése előtt.

A módszer finalize () általános 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 osztályhoz kívül nem érhető el.

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

  1. A final kulcsszó egy hozzáférés-módosító, végül egy blokk, és a véglegesítés egy módszer.
  2. A végleges kulcsszó alkalmazható az osztályokra, változókra és módszerekre, végül egy kivétel kezelésére használt próbálkozás-blokkhoz társított blokk, a véglegesítés olyan módszer, amely csak objektumokon működik.
  3. A véglegesnek nyilvánított változó állandóvá válik, és azt nem lehet újra kiosztani, a véglegesnek nyilvánított módszert nem lehet felülbírálni, és a véglegesnek nyilvánított osztály soha nem örökölhető. Az utolsó blokkot a try and catch blokk által felhasznált erőforrások megtisztítására használják. A véglegesítés módszerrel tisztítják az objektumok által használt erőforrásokat az objektum megsemmisítése előtt.

Következtetés:

A véglegesítés, a véglegesítés és a véglegesítés eltérő hatást gyakorol egy módszerre.