Distrugerea obiectului și metodei Finalize (), un blog doar despre Java

Distrugerea obiectului și metodei Finalize (), un blog doar despre Java
Unele limbaje orientate obiect. în special în C ++, există destructori explicite, concepute pentru a distruge obiecte. Sarcina lor principală - pentru a elibera memorie, obiecte amuzante. Deoarece limbajul Java are un mecanism de colectare a gunoiului automat pentru a elibera memorie nu este manual necesar, astfel încât în ​​Java, nu exista destructori.

Desigur, unele dintre obiectele utilizate în plus față de memorie și alte resurse, cum ar fi fișiere sau manipulează alte obiecte, care, la rândul său, se referă la resursele sistemului. În acest caz, este important ca resursele să fie eliberate la timp. În fiecare clasă, puteți adăuga metoda finalize (). Această metodă se numește înainte de sistem „de colectare a gunoiului“ pentru a distruge obiectul. În practică, în cazul în care trebuie să reînnoiți resursele și să le reutilizeze la o dată, puteți să nu se bazeze pe metoda finalize (). - nu știi exact când este invocată această metodă.

System.runFinalizerOnExit (true) metoda de acolo. asigurându-se că metoda finalize () va fi numit înainte de programul se termină. Cu toate acestea, această metodă este extrem de fiabile și nu este recomandat pentru utilizare. In Runtime.addShutdownHook (), metoda poate fi utilizată ca alternativă. Pentru mai multe informații cu privire la aceasta pot fi găsite în documentația API.

În cazul în care resursa ar trebui să fie eliberat imediat după utilizarea acestuia, te scrie codul corespunzător. Adăugați Evacuați () metoda, sau aproape (). pe care doriți să apelați în mod explicit pentru ștergerea memoriei. Dacă o clasă are o metodă, trebuie să-l suni când ați terminat cu obiectul acestei clase.

articole similare