Porovnávacia tabuľka
Základ pre porovnanie | Finálny | konečne | dokončiť |
---|---|---|---|
základné | Final je "kľúčové slovo" a "modifikátor prístupu" v jazyku Java. | Nakoniec je "blok" v jazyku Java. | Finalizácia je "metóda" v jazyku Java. |
použiteľný | Final je kľúčové slovo platné pre triedy, premenné a metódy. | Nakoniec je blok, ktorý je vždy spojený so skúšobným blokom. | finalize () je metóda použiteľná na objekty. |
pracovné | (1) Konečná premenná sa stane konštantnou a nemôže byť priradená. (2) Trieda detí nemôže prekonať poslednú metódu. (3) Záverečná trieda nemožno predĺžiť. | "Nakoniec" blok, vyčistiť prostriedky použité v "try" bloku. | Metóda finalizácie vykonáva čistenie činností súvisiacich s objektom pred jeho zničením. |
poprava | Konečná metóda sa vykonáva po jeho výzve. | Blok "Nakoniec" sa vykoná tesne po vykonaní bloku "try-catch". | finalize () metóda vykoná tesne pred zničením objektu. |
Definícia konečného
"Final" je kľúčové slovo v jazyku Java. Jedná sa o modifikátor prístupu. Konečné kľúčové slovo sa vzťahuje na triedy, metódy a premenné. Pozrime sa, ako to funguje s každým z nich.
Konečná premenná
- Ak sa na premennú použije konečné kľúčové slovo, nemôže byť ďalej upravené.
- Konečná premenná musí byť inicializovaná, keď je deklarovaná.
- V spoločnom konvente kódovania sú konečné premenné deklarované v UPPERCASE.
- Konečná premenná neobsahuje pamäť na základe jednotlivých prípadov.
konečná hodnota int FILE_OPEN = 2;
Záverečné metódy
- Keď je metóda v triede deklarovaná ako konečná, nemôže ju prepísať jej podtrieda.
- Malé metódy, ktoré sú deklarované ako konečné, môžu byť kompilátorom "inline", čím sa zníži réžia funkčných volaní a zvýšia sa výkonové vylepšenia.
- Prepísané metódy hovoru, sú vyriešené dynamicky, ale keď je metóda deklarovaná ako konečná, nemožno ju overiť. Volanie funkcie sa preto môže vyriešiť v čase kompilácie.
trieda A {final void meth () {System.out.println ("Toto je posledná metóda."); }} trieda B rozširuje A {void meth () {// Clas B nemôže zdediť metódu triedy A. System.out.println ("Nepodlieha"); }}
Konečná trieda
- Ak je trieda deklarovaná ako konečná, potom ju nemôže zdediť žiadna podtrieda.
- Vyhlásenie triedy za konečné automaticky vyhlási všetky metódy za konečné.
- Nemôžete deklarovať triedu ako "abstraktnú", tak aj "konečnú".
konečná trieda A {// ...} trieda B sa rozširuje A {// Trieda B nemôže zdediť triedu A // ...}
Definícia konečne
- V jazyku Java je "konečne" blok, ktorý je vždy spojený s blokom try / catch.
- Blok "konečne" sa vykoná po bloku try / catch a pred kódom try / catch block.
- Blok "konečne" vykoná, či je výnimka vyhodená alebo nie.
- Keď je výnimka vyhodená a žiadny blok úlovku sa nezhoduje s výnimkou, potom sa vykoná blok "konečne".
- Keď sa metóda vracia volajúcemu z vnútra bloku try / catch prostredníctvom nezakazenej výnimky alebo explicitného návratového výkazu, vykoná sa blok "konečne" tesne predtým, ako sa metóda vráti volajúcemu.
- Blok "konečne" sa používa na vyčistenie zdrojov alebo uvoľnenie pamäte, ktorá sa používa v bloku "try".
- Blok "konečne" je voliteľný, ale je dobrým postupom napísať konečný blok po bloku try / catch.
class FinallyExample {// Táto metóda udeľuje výnimku z metódy. statická void procA () {try {System.out.println ("inside procA"); hádzať nové RuntimeException ("demo"); } konečne {System.out.println ("procA's finally"); }} // Vráťte sa zo skúšobného bloku. statická prázdna procB () {try {System.out.println ("inside procB"); return; } nakoniec {System.out.println ("Nakoniec procB je"); }} // Vykonajte skúšobný blok normálne. statická prázdna procC () {try {System.out.println ("vnútri procC"); } konečne {System.out.println ("procC's finally"); }} verejné statické neplatné hlavné (String args []) {try {procA (); } úlovok (výnimka e) {System.out.println ("Vychytený výnimka"); } procB (); procC (); }} // výstup vnútri procA procA je nakoniec Výnimka ulovená vnútri procB procB konečne vnútri procC procC konečne
Definícia finalizácie
- Finalizácia je metóda v triede objektov.
- Objekt môže byť držiteľom niektorých ne-java zdrojov, ako je súborový popisovač; potom musí byť oslobodený predtým, než bude zničený.
- Táto metóda je vyvolaná zberačom odpadu pred úplným zničením objektu.
- Táto metóda vykonáva činnosti čistenia objektu pred jeho zničením.
Všeobecná forma metódy finalize () je nasledujúca.
chrániť void finalize () {// finalizačný kód tu}
Spôsob finalizácie je deklarovaný ako chránený tak, aby nebol prístupný zvonku triedy.
Táto metóda sa vždy volá pred zberom odpadu.
Kľúčové rozdiely medzi finálnou, konečnou a finalizáciou
- Kľúčové slovo finále je modifikátor prístupu, nakoniec je blok a finalizácia je metóda.
- Kľúčové slovo finále sa vzťahuje na triedy, premenné a metódy tried, nakoniec je to blok spojený s blokom skúšok, ktorý sa používa na spracovanie výnimiek, finalizácia je metóda, ktorá funguje len na objektoch.
- Premenná, ktorá sa deklaruje ako konečná, sa stane konštantnou a nemôže byť znova priradená, metóda deklarovaná ako konečná nemôže byť prekonaná a trieda, ktorá bola deklarovaná ako konečná, sa nikdy nedá zdediť. Konečný blok sa používa na vyčistenie zdrojov využívaných skúšobným a úlovkovým blokom. Metóda dokončenia sa používa na vyčistenie zdrojov, ktoré objekt používa pred zničením objektu.
záver:
Konečný, nakoniec a finalizovaný má iný efekt pri použití na metódu.