Jaké je použití Destructoru v Javě?



Tento článek popisuje koncept destruktoru v Javě s příklady zdůrazňujícími význam destruktoru v Javě v jakékoli třídě Java.

Při práci s třídy v Javě , konstruktory se používají pro inicializaci instance třídy. Paměť je pro objekt přidělena pomocí stavitel ale poté, co je dokončen životní cyklus objektu a objekt se již nepoužívá, musí být paměť uvolněna a uvolněna. To je místo, kde destruktor dovnitř přichází do obrazu. V tomto článku se dozvíme o destruktorech v Javě v následujícím pořadí:

Co je destruktor?

Destruktor je speciální který se automaticky zavolá, jakmile je dokončen životní cyklus objektu. Volá se destruktor k uvolnění a uvolnění paměti. Při volání destruktoru se provedou následující úlohy.





  • Uvolnění uvolňovacích zámků
  • Uzavření všech databázových připojení nebo souborů
  • Uvolnění všech síťových prostředků
  • Další úkoly v domácnosti
  • Obnova prostoru haldy přiděleného během životnosti objektu

Destruktory v Javě, známé také jako finalizátory, jsou nedeterministické. Alokaci a uvolnění paměti implicitně zpracovává garbage collector v Javě .

Finalizátory v Javě je nutné implicitně vyvolat, protože jejich vyvolání není zaručeno, na rozdíl od C # finalizátorů, které jsou vyvolány během běhu .NET.



Pojďme se podívat na klíčové vlastnosti destruktoru:

  • Přetížení nebo dědičnost nejsou povoleny
  • Žádná specifikace modifikátorů přístupu nebo parametrů
  • Automatické vyvolání a žádné výslovné volání od uživatele
  • Používá se ve třídách, ale ne ve strukturách
  • Pořadí třídy se liší od nejvíce odvozené třídy po nejméně odvozenou třídu
  • Také se nazývá, když instance objektu již není způsobilá pro přístup
  • Používá se k uvolnění nespravovaných prostředků namísto spravovaných prostředků držených objektem

Popelář

Garbage collector je program, který běží na Virtuální stroj Java obnovit paměť odstraněním objektů, které se již nepoužívají nebo které ukončily svůj životní cyklus. O objektu se říká, že je způsobilý k uvolňování paměti, právě když je objekt nedosažitelný.

jak nastavit cestu java v systému Windows

Pokusme se pochopit, jak funguje odvoz odpadu v Javě:



Garbage collection je hlavně proces označování nebo identifikace nedosažitelných objektů a jejich mazání, aby se uvolnila paměť. Implementace žije v JVM, jediným požadavkem je, aby splňovala specifikace JVM. Jedná se o různé typy sběračů odpadků v Javě:

  • Sériový sběratel odpadků
  • Parallel / Throughput Garbage Collector
  • Sběratel CMS
  • Sběratel G1

Podívejme se na několik výhod sběru odpadu v Javě:

  • Automaticky odstraní nepoužívané objekty, které nejsou dostupné, aby uvolnilo paměť
  • Garbage collection dělá paměť Java efektivní
  • Nemusí být výslovně volána, protože implementace žije v JVM
  • Odpadky se staly důležitou a standardní součástí mnoha programovacích jazyků

Zkusme pochopit, proč se destruktory v Javě nepoužívají.

Constructor vs Destructor: Rozdíl mezi konstruktérem a destruktorem

Stavitel ničitel

Konstruktor se používá k inicializaci instance třídy

Destruktor se používá k odstranění nebo zničení objektů, když již nejsou používány

Konstruktory jsou volány, když je vytvořena instance třídy

Destruktory jsou volány, když je objekt zničen nebo uvolněn

Přidělení paměti

Uvolňuje paměť

Přetížení je možné

jednoduchý úvod do vědy o datech

Přetížení není povoleno

Mohou mít argumenty

V destruktoru nelze předat žádné argumenty

Metoda Java Finalize ()

Pro každého vývojáře je poměrně obtížné vynutit provedení garbage collectoru, ale existuje alternativa k tomuto. Můžeme použít objekt. dokončit() metoda, která funguje přesně jako destruktor v Javě.

Metoda Object.finalize () se dědí ve všech Objekty Java . Nejde o destruktor, ale slouží k zajištění nebo poskytnutí dalšího zabezpečení k zajištění použití externích zdrojů, jako je zavření souboru atd., Než se program vypne. Můžete jej zavolat pomocí samotné metody nebo system.runFinalizersOnExit (true).

Použití metody finalize () se velmi nedoporučuje, protože může být velmi nebezpečné a v některých případech použito nesprávně.

Uveďme si jednoduchý příklad, který ukazuje, jak lze pomocí finalize () volat garbage collector.

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

Tím se dostáváme na konec tohoto článku, kde jsme se dozvěděli o Destruktoru v Javě. Doufám, že máte jasno se vším, co bylo s vámi v tomto tutoriálu sdíleno.

Pokud vám tento článek o „Destruktoru v Javě“ připadá relevantní, podívejte se na důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě.

Jsme tu, abychom vám pomohli s každým krokem na vaší cestě a přišli s osnovami určenými pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování Java a naučil vás základní i pokročilé koncepty Java spolu s různými jako Přezimovat & .

Pokud narazíte na jakékoli dotazy, neváhejte se zeptat na všechny své dotazy v sekci komentářů v „Destructor In Java“ a náš tým vám rád odpoví.