Ključna razlika - dispose () vs finalize ()
Ključna razlika med dispose () in finalize () je v tem, da mora programer izrecno priklicati dispose (), medtem ko zbiralnik smeti pred uničenjem predmeta pokliče finalize ().
Dispose () je metoda za zapiranje ali sprostitev neupravljanih virov, kot so datoteke, tokovi, ki jih hrani objekt. Dokončaj je metoda za izvajanje operacij čiščenja neupravljanih virov, ki jih ima trenutni objekt, preden je objekt uničen.
VSEBINA
1. Pregled in ključna razlika
2. Kaj je odstranjevanje ()
3. Kaj je finalizacija ()
4. Podobnosti med dispose () in finalize ()
5. Vzporedna primerjava - dispose () vs finalize () v tabelarnem obrazcu
6. Povzetek
Kaj je dispose ()?
Ena najpomembnejših prednosti okolja. NET je, da omogoča samodejno zbiranje smeti. Samodejno sprosti pomnilnik predmetov, ki se ne uporabljajo. V programskih jezikih, kot sta C in C ++, se mora programer sam ukvarjati z upravljanjem pomnilnika. Toda v jezikih, kot je C #, ki je zgrajen na okolju. NET, ponuja zbiralnik smeti. Pomaga pri upravljanju spomina. Ni ga mogoče uporabiti za sprostitev neupravljanih pomnilniških virov. Za dosego te naloge je mogoče uporabiti metodo dispose ().
Metodo dispose () lahko uporabimo za sprostitev virov, kot so povezave z bazami podatkov, upravljavci datotek itd. Ta metoda se ne pokliče samodejno. Zato bi moral programer to metodo izvesti. Takoj, ko se ta metoda prikliče, se sprosti pomnilnik za določen neupravljani vir. Ta metoda je navedena v vmesniku IDisposeable.
Kaj je finalize ()?
Metodo dokončanja pokliče zbiralnik smeti šele, ko se sklic na objekt ne uporablja več. Ta metoda se pokliče tik pred uničenjem predmeta. Ta metoda se izvaja s pomočjo destruktorja. Metoda dokončanja je definirana v razredu java.lang.object. Ta metoda je razglašena za zaščiteno. Ni razglašeno za javno, da bi se izognili dostopu drugih razredov. Na splošno lahko metoda dokončanja zmanjša delovanje programa, ker ne sprosti pomnilnika takoj.
Kakšna je podobnost med dispose () in finalize ()?
Tako dispose () kot dokončanje () lahko uporabite za osvoboditev pomnilnika, dodeljenega za neupravljani vir
Kakšna je razlika med dispose () in finalize ()?
Diff Article Sredina pred mizo
dispose () vs finalize () |
|
Dispose () je metoda za zapiranje ali sprostitev neupravljanih virov, kot so datoteke, tokovi, ki jih hrani objekt. | Dokončaj je metoda za čiščenje neupravljanih virov, ki jih ima trenutni objekt, preden je objekt uničen. |
Cilj | |
Metoda odstranjevanja se uporablja za osvoboditev neupravljanih virov, ko se ta prikliče. | Metoda dokončanja se uporablja za osvoboditev neupravljanih virov, preden se objekt uniči. |
Določeni vmesnik ali razred | |
Dispose () je definiran v vmesniku IDisposable interface. | Zaključek () je definiran v razredu java.lang.object. |
Klicna metoda | |
Programer prikliče metodo dispose. | Metodo dokončanja prikliče zbiralec smeti. |
Določnik dostopa | |
Metoda odstranjevanja je javna. | Metoda dokončanja je zaščitena. |
Hitrost | |
Metoda odstranjevanja se sproži takoj. | Metoda dokončanja se prikliče počasi. |
Izvedba | |
Odstranjevanje ne bo zmanjšalo uspešnosti programa. | Metoda dokončanja lahko zmanjša učinkovitost delovanja programa. |
Povzetek - dispose () vs finalize ()
Ta članek je obravnaval razliko med metodama odstranjevanja in dokončanja v C #. Razlika med dispose () in finalize () je v tem, da mora programer izrecno priklicati dispose (), medtem ko zbiralnik smeti pred uničenjem objekta prikliče finalize ().