Pokud máte nějaké předchozí zkušenosti s , pak jste si možná všimli, že tazatelé mají tendenci klást záludné otázky, které obvykle vycházejí ze základních pojmů. Jednou z takových otázek, které se nejčastěji kladou, je rozlišovat mezi konečnou, konečnou a finální . Prostřednictvím tohoto článku nakreslím jasnou hranici mezi final, final a finalize v Javě, což vám pomůže získat lepší přehled.
V tomto článku se budu věnovat následujícím tématům:
- Konečné klíčové slovo
- Nakonec blok
- Dokončit metodu
- Srovnávací tabulka - konečná, konečná a finalizace v Javě
Pojďme tedy začít s úplně prvním klíčovým slovem mezi final, final a finalize v Javě.
Konečné klíčové slovo
V Javě je final klíčové slovo, které lze také použít jako modifikátor přístupu. Jinými slovy, klíčové slovo final se používá k omezení přístupu uživatele. Může být použit v různých kontextech, jako jsou:
S každým z nich má konečné klíčové slovo jiný účinek. Podívejme se, jak to postupně ovlivňuje každého z nich.
1. Variabilní konec
Kdykoli konečné klíčové slovo v je používán s proměnnou, polem nebo parametrem, to znamená, že jakmile je předán odkaz nebo je vytvořena instance, pak jeho hodnotu nelze změnit během provádění programu. V případě a bez jakékoli hodnoty byla deklarována jako konečná, pak je známá jako prázdná / neinicializovaná konečná proměnná a může být inicializována pouze prostřednictvím konstruktoru.
Podívejme se nyní na příklad.
veřejná třída A {int var1 = 123 // deklarování konečných proměnných final int var2 = 345 final int var3 // Pokus o inicializaci prázdné konečné proměnné var = 555 // Chyba A () {var1 = 111 // Žádná chyba var2 = 333 // Chyba kompilace // Inicializace prázdné konečné proměnné var3 = 444 // Žádná chyba} // předání konečných parametrů void avg (int param1, final int param2) {param1 = 2345 // Žádná chyba param2 = 1223 // Chyba kompilace} // deklarování finálních polí void show () {final int fieldVal = 300000 fieldVal = 400000 // chyba}}
Jednalo se tedy o to, jak konečné klíčové slovo ovlivňuje proměnnou, pojďme se nyní podívat, jak je metoda ovlivněna.
2. Konečná metoda
V Javě, kdykoli je metoda deklarována jako konečná, nemůže být jakoukoli podřízenou třídou během provádění programu.
Podívejme se na příklad.
// FINAL METHOD class A {final void method_abc () {System.out.println ('This is a Final method and cannot be overridden')} void method_xyz () {System.out.println ('This is a normal method and can be overridden ')}} class B extends A {void method_abc {// Compile Time Error} void method_xyz () {System.out.println (' This is an overridden method in class B ')}}
Dosud jste již viděli výsledky deklarace proměnné a metody final, pojďme se nyní posunout dále a uvidíme, co se stane, když je třída v Javě deklarována jako konečná.
3. Finální třída
V Javě, kdykoli je třída deklarována jako konečná, nemůže být . Důvodem je, že jakmile bude třída deklarována jako konečná, všechny datové členy a metody obsažené ve třídě budou implicitně deklarovány jako konečné. Jakmile je třída deklarována jako konečná, již ji nelze deklarovat jako abstraktní. Jinými slovy, třída může být buď ze dvou, konečné nebo abstraktní.
Podívejme se na příklad.
// FINAL CLASS final class A {// class body} class B extends A {// Chyba kompilace // tělo třídy}
Doufám, že jste nyní jasně pochopili fungování konečného klíčového slova. Pojďme tedy nyní pokračovat v tomto článku o final, final a finalizovat v Javě, abychom zjistili roli konečného klíčového slova.
Nakonec blok
V Javě je konečně volitelný blok, který se používá pro . Obvykle tomu předchází blok try-catch. Nakonec se blok použije k provedení důležitého kódu, jako je vyčištění prostředku nebo uvolnění využití paměti atd. Nakonec se blok provede bez ohledu na to, zda je či není zpracována výjimka. Zabalení čisticích kódů do bloku nakonec je tedy považováno za dobrý postup. Můžete jej také použít s blokem try, aniž byste spolu s ním potřebovali jakýkoli blokovací blok.
Podívejme se nyní na stejný příklad.
třída 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čně {System.out.println ('Konečně blokovat')}}}
Doposud jsem již diskutoval o konečných a konečně klíčových slovech v Javě. Pojďme nyní osvětlit poslední klíčové slovo ze tří, tj. Dokončit klíčové slovo v Javě.
Dokončit metodu
Finalize je chráněná nestatická metoda, která je definována ve třídě Object a je tedy k dispozici pro všechny objekty v Javě.Tato metoda jevyvolaný sběratelem odpadků před úplným zničením objektu.Jako někdy,an možná bude muset dokončit nějaký důležitý úkol, jako je zavření otevřeného připojení, uvolnění zdroje atd., než bude zničeno. Pokud tyto úkoly nejsou splněny, může to snížit účinnost programu. To znamená, žegarbage collector to volá pro objekty, na které již není odkazováno a které byly označeny pro odvoz odpadu.
Tato metoda je deklarována jako chráněná, aby omezila její použití zvenčí třídy. Ale můžete jej přepsat zevnitř třídy a definovat jeho vlastnosti v době sběru odpadu.
jaké je použití programování soketů
Podívejme se na příklad toho samého.
public class A {public void finalize () hodí Throwable {System.out.println ('Objekt je zničen Garbage Collector')} public static void main (String [] args) {Edureka test = nový Edureka () test = null System.gc ()}}
S tímto se dostáváme na konec tohoto článku o final, final a finalizaci v Javě. Na závěr jsem přidal srovnání všech tří klíčových slov, které vám na první pohled pomohou načíst hlavní rozdíly.
Srovnávací tabulka - Final vs Konečně vs Finalizace klíčových slov v Javě
Faktor | Finále | Konečně | Dokončit |
Definice | Final je klíčové slovo a používá se jako modifikátor přístupu v Javě | Konečně je blok v Javě používaný pro zpracování výjimek | Finalizace je metoda v Javě používaná pro Garbage Collection |
aplikace | Final v Javě se používá s proměnnými, metodami a třídami pro nastavení přístupových oprávnění | Nakonec se použije blok spolu s blokem try and catch | Metoda Finalizace v Javě se používá u objektů, které se již nepoužívají |
Funkce | Konečná proměnná v Javě je konstanta, jejíž hodnotu nelze po přiřazení změnit. Konečná metoda v Javě nemůže být přepsána jejími podřízenými třídami. Konečnou třídu v Javě nemůže zdědit žádná podřízená třída. | Nakonec blok v Javě pomáhá při čištění prostředků, které byly použity v bloku try | Metoda Finalize pomáhá při vyčištění aktivit pro objekt před jeho zničením garbage collectorem |
Provedení | Provede se, když je vyvolán kompilátorem | Provede se hned po provedení bloku try-catch | Provádí se těsně před zničením objektu |
Doufám, že prostřednictvím tohoto Final, Final and Finalize in Java jsem byl schopen vyčistit koncepty a pomohl vám při přidávání hodnoty vašim znalostem.
Pokud jste našli tento článek na téma „Final, Final and Finalize in Java „Relevantní, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Máte na nás dotaz? Uveďte to prosím v sekci komentářů Final, Final a Finalize v Javě a my se vám ozveme.