Diferența dintre eliminarea () și finalizarea ()

Cuprins:

Diferența dintre eliminarea () și finalizarea ()
Diferența dintre eliminarea () și finalizarea ()

Video: Diferența dintre eliminarea () și finalizarea ()

Video: Diferența dintre eliminarea () și finalizarea ()
Video: Care este diferența dintre părul porcului si coada calului? 2024, Iulie
Anonim

Diferența cheie – eliminare () vs finalizare ()

Diferența cheie dintre dispose () și finalize () este că dispose () trebuie să fie invocat în mod explicit de către programator, în timp ce finalize () este invocat de către colectorul de gunoi înainte de a distruge obiectul.

Dispare () este o metodă de a închide sau de a elibera resurse negestionate, cum ar fi fișiere, fluxuri deținute de un obiect. Finalizarea este o metodă de a efectua operațiuni de curățare a resurselor negestionate deținute de obiectul curent înainte ca obiectul să fie distrus.

Ce este eliminarea()?

Unul dintre cele mai importante avantaje ale. NET framework este că oferă colectarea automată a gunoiului. Eliberează automat memoria obiectelor care nu sunt folosite. În limbaje de programare precum C și C++, programatorul trebuie să se ocupe singur de gestionarea memoriei. Dar în limbaje precum C care este construit pe. NET framework oferă colectorul de gunoi. Ajută la gestionarea memoriei. Nu poate fi folosit pentru a elibera resursele de memorie negestionate. Metoda de eliminare () poate fi folosită pentru a realiza această sarcină.

Diferența dintre eliminarea () și finalizarea ()
Diferența dintre eliminarea () și finalizarea ()

Metoda dispose () poate fi folosită pentru a elibera resurse, cum ar fi conexiuni la baze de date, gestionari de fișiere etc. Această metodă nu este apelată automat. Prin urmare, programatorul ar trebui să implementeze această metodă. De îndată ce această metodă este invocată, memoria pentru resursa particulară neadministrată este eliberată. Această metodă este declarată în interfața IDisposeable.

Ce este finalizarea ()?

Metoda finalize este apelată de colectorul de gunoi numai atunci când referința la un obiect nu este folosită în continuare. Această metodă este apelată chiar înainte de distrugerea obiectului. Această metodă este implementată cu ajutorul destructorului. Metoda finalize este definită în clasa java.lang.object. Această metodă este declarată protejată. Nu este declarat public pentru a evita accesul de către celel alte clase. În general, metoda finalize poate minimiza performanța programului, deoarece nu eliberează memoria instantaneu.

Care este asemănarea dintre eliminarea () și finalizarea ()?

Atât elimina () cât și finalize() pot fi folosite pentru a elibera memoria alocată pentru o resursă negestionată

Care este diferența dintre eliminarea () și finalizarea ()?

dispose () vs finaliza ()

Dispunerea () este o metodă de a închide sau de a elibera resurse negestionate, cum ar fi fișiere, fluxuri deținute de un obiect. Finalizarea este o metodă de a efectua operațiuni de curățare a resurselor negestionate deținute de obiectul curent înainte ca obiectul să fie distrus.
Obiectiv
Metoda de eliminare este folosită pentru a elibera resursele negestionate atunci când este invocată. Metoda finalize este folosită pentru a elibera resursele negestionate înainte ca obiectul să fie distrus.
Interfață sau clasă definită
Eliminarea () este definită în interfața ID interfață de unică folosință. Finalizarea () este definită în clasa java.lang.object.
Metoda de invocare
Metoda de eliminare este invocată de programator. Metoda finalize este invocată de colectorul de gunoi.
Specificator de acces
Metoda de eliminare este publică. Metoda de finalizare este protejată.
Viteza
Metoda de eliminare este invocată instantaneu. Metoda de finalizare este invocată încet.
Performanță
Eliminarea nu va minimiza performanța programului. Metoda de finalizare ar putea minimiza performanța programului.

Rezumat – eliminare () vs finalizare ()

Acest articol a discutat despre diferența dintre metodele de eliminare și finalizare în C. Diferența dintre dispose () și finalize () este că, dispose () trebuie să fie invocat în mod explicit de către programator, în timp ce finalize () este invocat de către colectorul de gunoi înainte de a distruge obiectul.

Recomandat: