Všetko, čo potrebujete vedieť o Final, Final a Finalization v Jave



Tento článok o Final, Final a Finalize v Jave vám poskytne kompletný zoznam rozdielov medzi kľúčovými slovami Final, Final a Finalize spolu s praktickými implementáciami.

Ak máte nejaké predchádzajúce skúsenosti z , potom ste si mohli všimnúť, že anketári majú sklon klásť zložité otázky, ktoré zvyčajne vychádzajú zo základných pojmov. Jednou z takých otázok, ktorá sa väčšinou kladie, je rozlišovať medzi konečnou a konečnou úpravou v . Prostredníctvom tohto článku nakreslím jasnú hranicu medzi final, final a finalize v Jave, čo vám pomôže získať lepšie poznatky.

V tomto článku sa budem venovať týmto témam:





Začnime teda s úplne prvým kľúčovým slovom medzi final, final a finalizujeme v Jave.

Konečné kľúčové slovo

V Jave je final kľúčové slovo, ktoré sa dá použiť aj ako modifikátor prístupu. Inými slovami, konečné kľúčové slovo sa používa na obmedzenie prístupu používateľa. Môže byť použitý v rôznych kontextoch, ako napríklad:



  1. Premenná konečná
  2. Záverečná metóda
  3. Záverečná trieda

Pri každom z nich má výsledné kľúčové slovo iný účinok. Poďme sa teraz pozrieť, ako to ovplyvňuje každého z nich jeden po druhom.

1. Variabilný koniec

Kedykoľvek je konečné kľúčové slovo v sa používa s premennou, poľom alebo parametrom, čo znamená, že akonáhle sa odovzdá referencia alebo sa uskutoční inštancia, potom jej hodnotu nie je možné zmeniť počas vykonávania programu. V prípade a bez toho, aby bola akákoľvek hodnota deklarovaná ako konečná, je známa ako prázdna / neinicializovaná konečná premenná a dá sa inicializovať iba prostredníctvom konštruktora.

Pozrime sa teraz na príklad.



verejná trieda A {int var1 = 123 // deklarovanie konečných premenných final int var2 = 345 final int var3 // Pokus o inicializáciu prázdnej finálnej premennej var = 555 // Chyba A () {var1 = 111 // Žiadna chyba var2 = 333 // Chyba kompilácie // Inicializácia prázdnej konečnej premennej var3 = 444 // Žiadna chyba} // odovzdanie konečných parametrov void avg (int param1, final int param2) {param1 = 2345 // Žiadna chyba param2 = 1223 // Chyba kompilácie} // deklarovanie finálnych polí void show () {final int fieldVal = 300000 fieldVal = 400000 // chyba}}

Išlo teda o to, ako konečné kľúčové slovo ovplyvňuje premennú, pozrime sa teraz, ako na ňu má vplyv metóda.

2. Záverečná metóda

V Jave nemôže byť metóda kedykoľvek deklarovaná ako konečná ktoroukoľvek podradenou triedou počas celého vykonávania programu.

Pozrime sa na príklad.

// FINAL METHOD class A {final void method_abc () {System.out.println ('Toto je konečná metóda a nemožno ju prepísať')} void method_xyz () {System.out.println ('toto je normálna metóda a dá sa prepísať ')}} trieda B rozširuje A {void method_abc {// chyba času kompilácie} void method_xyz () {System.out.println (' Toto je prepísaná metóda v triede B ')}}

Až doteraz ste už videli výsledky deklarovania premennej a metódy konečnej. Poďme sa teraz posunúť ďalej a zistiť, čo sa stane, keď je trieda v Jave vyhlásená za konečnú.

3. Finálna trieda

V Jave to nemôže byť vždy, keď je trieda vyhlásená za konečnú . Je to preto, že akonáhle je trieda vyhlásená za konečnú, všetky dátové členy a metódy obsiahnuté v triede budú implicitne vyhlásené za konečné. Akonáhle je trieda vyhlásená za konečnú, už ju nemožno vyhlásiť za abstraktnú. Inými slovami, trieda môže byť buď dvojitá, záverečná alebo abstraktná.

Pozrime sa na príklad.

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

Dúfam, že ste už jasne pochopili fungovanie konečného kľúčového slova. Poďme teda ďalej v tomto článku o final, konečne a finalizujme v Jave, aby sme zistili úlohu kľúčového slova konečne.

Nakoniec zablokujte

V Jave je konečne voliteľný blok, ktorý sa používa pre . Spravidla tomu predchádza blokovanie pokusom o zachytenie. Nakoniec sa blok použije na vykonanie dôležitého kódu, ako je vyčistenie prostriedkov alebo uvoľnenie pamäte, atď. Nakoniec sa vykoná blok bez ohľadu na to, či sa s výnimkou zaobchádza alebo nie. Zbalenie čistiacich kódov do bloku konečne sa teda považuje za dobrú prax. Môžete ho tiež použiť s blokom try bez toho, aby ste spolu potrebovali akýkoľvek blokovací blok.

Pozrime sa teraz na príklad toho istého.

trieda A {public static void main (String args []) {try {System.out.println ('Try Block') throw new Exception ()} catch (Exception e) {System.out.println ('Catch Block') } konečne {System.out.println ('konečne blokovať')}}}

Doteraz som už diskutoval o konečných a nakoniec kľúčových slovách v Jave. Poďme si teraz priblížiť posledné kľúčové slovo medzi tromi, teda dokončiť kľúčové slovo v Jave.

Dokončiť metódu

Finalize je chránená nestatická metóda, ktorá je definovaná v triede Object a je tak k dispozícii pre všetky objekty v Jave.Táto metóda jevyvolaný zberačom odpadu pred úplným zničením objektu.Ako niekedy,an možno bude musieť dokončiť niektoré dôležité úlohy, ako je ukončenie otvoreného pripojenia, uvoľnenie zdroja atď., skôr ako dôjde k jeho zničeniu. Ak tieto úlohy nebudú splnené, môže to znížiť účinnosť programu. Tedagarbage collector to volá pre objekty, na ktoré sa už neodkazuje a ktoré boli označené na zber odpadu.

Táto metóda je deklarovaná ako chránená, aby obmedzila jej použitie mimo triedy. Môžete ich však prepísať zvnútra triedy a definovať tak ich vlastnosti v čase zberu odpadu.

čo je rám v Jave

Pozrime sa na príklad toho istého.

public class A {public void finalize () vrhá Throwable {System.out.println ('Objekt je zničený Garbage Collectorom')} public static void main (String [] args) {Edureka test = nový Edureka () test = null System.gc ()}}

Týmto sa dostávame na koniec tohto článku o final, konečne a finalizujeme v Jave. Na záver som pridal porovnanie všetkých troch kľúčových slov, ktoré vám pomôže pri načítaní hlavných rozdielov jediným pohľadom.

Porovnávacia tabuľka - Konečné vs Konečne vs Finalizácia kľúčových slov v prostredí Java

Faktor Konečný Nakoniec Dokončiť
Definícia Final je kľúčové slovo a používa sa ako modifikátor prístupu v JaveNakoniec je blok v Jave používaný pre spracovanie výnimiekFinalizácia je metóda v Jave používaná na Garbage Collection
Aplikácia Final v Jave sa používa s premennými, metódami a triedami na nastavenie prístupových oprávneníNakoniec sa použije blok spolu s blokom try and catchMetóda Finalize v Jave sa používa s objektmi, ktoré sa už nepoužívajú
Funkcia Výsledná premenná v Jave je konštanta, ktorej hodnotu nie je možné po priradení zmeniť.

Výslednú metódu v Jave nemôžu prepísať jej podradené triedy.

Finálnu triedu v Jave nemôže zdediť žiadna podradená trieda.

Nakoniec blok v Jave pomáha pri čistení prostriedkov, ktoré boli použité v bloku tryMetóda Finalize pomáha pri čistení aktivít pre objekt skôr, ako ho zlikviduje garbage collector
Exekúcia Vykoná sa, keď ho vyvolá kompilátorVykoná sa hneď po vykonaní bloku try-catchVykoná sa tesne pred zničením objektu

Dúfam, že prostredníctvom tohto Final, Final and Finalize in Java som bol schopný objasniť koncepty a pomohol vám pri pridávaní hodnoty vašim znalostiam.

Ak ste našli tento článok o „Finále, Konečne a Finalizácia v Jave „Relevantné, pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov Finále, konečne a finalizácia v Jave a ozveme sa vám.