Diferența Dintre Dispose () și Finalize ()

Cuprins:

Diferența Dintre Dispose () și Finalize ()
Diferența Dintre Dispose () și Finalize ()

Video: Diferența Dintre Dispose () și Finalize ()

Video: Diferența Dintre Dispose () și Finalize ()
Video: #30 Какая разница между методами Finalize и Dispose? Ответ на вопрос собеседования C# / .Net 2024, Decembrie
Anonim

Diferența cheie - dispune () vs finalizează ()

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

Dispozitia () este o metodă de închidere sau eliberare a resurselor neadministrate, cum ar fi fișiere, fluxuri deținute de un obiect. Finalizarea este o metodă de efectuare a operațiilor de curățare a resurselor neadministrate deținute de obiectul curent înainte ca obiectul să fie distrus.

CUPRINS

1. Prezentare generală și diferența cheie

2. Ce este dispune ()

3. Ce se finalizează ()

4. Asemănări între dispune () și finalizează ()

5. Comparație side by side - dispune () vs finalizează () în forma tabelară

6. rezumat

Ce este dispose ()?

Unul dintre cele mai importante avantaje ale cadrului. NET este că oferă colectarea automată a gunoiului. Eliberează automat memoria obiectelor care nu sunt utilizate. În limbaje de programare precum C și C ++, programatorul trebuie să se ocupe singur de gestionarea memoriei. Dar în limbi 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 neadministrate. Metoda dispose () poate fi utilizată pentru a realiza această sarcină.

Diferența dintre dispose () și finalize ()
Diferența dintre dispose () și finalize ()

Metoda dispose () poate fi utilizată pentru a elibera resurse precum conexiuni la baze de date, gestionare 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 anume neadministrată se eliberează. Această metodă este declarată în interfața IDisposeable.

Ce este finalize ()?

Metoda de finalizare este apelată de către colectorul de gunoi numai atunci când referința la un obiect nu este utilizată în continuare. Această metodă se numește chiar înainte de a distruge obiectul. Această metodă este implementată cu ajutorul distructorului. Metoda finalize este definită în clasa java.lang.object. Această metodă este declarată protejată. Nu este declarat drept public pentru a evita accesul de către celelalte clase. În general, metoda de finalizare poate minimiza performanța programului, deoarece nu eliberează memoria instantaneu.

Care este asemănarea dintre dispose () și finalize ()?

Atât dispose (), cât și finalize () pot fi utilizate pentru a elibera memoria alocată pentru o resursă neadministrată

Care este diferența dintre dispose () și finalize ()?

Difuzarea articolului din mijloc înainte de tabel

dispune () vs finalizează ()

Dispozitia () este o metodă de închidere sau eliberare a resurselor neadministrate, cum ar fi fișiere, fluxuri deținute de un obiect. Finalizarea este o metodă de efectuare a operațiunilor de curățare a resurselor neadministrate deținute de obiectul curent înainte ca obiectul să fie distrus.
Obiectiv
Metoda de eliminare este utilizată pentru a elibera resursele neadministrate atunci când este invocată. Metoda de finalizare este utilizată pentru a elibera resursele necontrolate înainte ca obiectul să fie distrus.
Interfață sau clasă definită
Dispozitivul () este definit în interfața ID interfață nedisponibilă. Finalize () este definit în clasa java.lang.object.
Metoda invocării
Metoda de eliminare este invocată de programator. Metoda de finalizare este invocată de colectorul de gunoi.
Specificator de acces
Metoda de eliminare este publică. Metoda de finalizare este protejată.
Viteză
Metoda de eliminare este invocată instantaneu. Metoda de finalizare este invocată încet.
Performanţă
Eliminarea nu va minimiza performanța programului. Metoda de finalizare poate minimiza performanța programului.

Rezumat - dispune () vs finalizează ()

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 colectorul de gunoi înainte de a distruge obiectul.

Recomandat: