Vše, co potřebujete vědět o Final, Final a Finalize v Javě



Tento článek o Final, Final a Finalize v Javě vám poskytne kompletní seznam rozdílů mezi klíčovými slovy Final, Finally a Finalize spolu s praktickými implementacemi.

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:





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:



  1. Proměnná konečná
  2. Konečná metoda
  3. Závěrečná třída

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ýjimekFinalizace 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 catchMetoda 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 tryMetoda 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átoremProvede se hned po provedení bloku try-catchPrová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.