Razlika med dispose () in finalize ()

Kazalo:

Razlika med dispose () in finalize ()
Razlika med dispose () in finalize ()

Video: Razlika med dispose () in finalize ()

Video: Razlika med dispose () in finalize ()
Video: Model 3 or Model S Which is the Better Choice? Differences? 2024, Julij
Anonim

Ključna razlika – dispose () vs finalize ()

Ključna razlika med dispose () in finalize () je v tem, da mora dispose () izrecno poklicati programer, medtem ko finalize () prikliče zbiralnik smeti, preden uniči objekt.

Dispose () je metoda za zapiranje ali sprostitev neupravljanih virov, kot so datoteke, tokovi, ki jih hrani objekt. Finalize je metoda za izvajanje operacij čiščenja neupravljanih virov, ki jih hrani trenutni objekt, preden je objekt uničen.

Kaj je dispose()?

Ena najpomembnejših prednosti. NET framework je, da zagotavlja samodejno zbiranje smeti. Samodejno sprosti spomin za predmete, ki niso v uporabi. V programskih jezikih, kot sta C in C++, mora programer upravljati pomnilnik sam. Toda v jezikih, kot je C, ki je zgrajen na ogrodju. NET, je na voljo zbiralnik smeti. Pomaga pri upravljanju spomina. Ni ga mogoče uporabiti za sprostitev neupravljanih pomnilniških virov. Za izvedbo te naloge lahko uporabite metodo dispose ().

Razlika med dispose () in finalize ()
Razlika med dispose () in finalize ()

Metodo dispose () lahko uporabite za sprostitev virov, kot so povezave z bazo podatkov, upravljalniki datotek itd. Ta metoda se ne kliče samodejno. Zato mora programer uporabiti to metodo. Takoj ko je ta metoda priklicana, se pomnilnik za določen neupravljani vir sprosti. Ta metoda je deklarirana v vmesniku IDisposeable.

Kaj je finalize ()?

Metodo finalize pokliče zbiralnik smeti samo, ko se sklic na objekt ne uporablja naprej. Ta metoda se pokliče tik pred uničenjem predmeta. Ta metoda se izvaja s pomočjo destruktorja. Metoda finalize je definirana v razredu java.lang.object. Ta metoda je označena kot zaščitena. Ni deklariran kot javni, da bi se izognili dostopu drugih razredov. Na splošno lahko metoda finalize zmanjša učinkovitost programa, ker ne sprosti pomnilnika takoj.

Kakšna je podobnost med dispose () in finalize()?

Tako dispose () kot finalize() lahko uporabite za sprostitev pomnilnika, dodeljenega neupravljanemu viru

Kakšna je razlika med dispose () in finalize()?

dispose () vs finalize ()

Odstranjevanje () je metoda za zapiranje ali sprostitev neupravljanih virov, kot so datoteke, tokovi, ki jih hrani objekt. Dokončanje je metoda za izvajanje operacij čiščenja neupravljanih virov, ki jih hrani trenutni objekt, preden je objekt uničen.
Cilj
Metoda dispose se uporablja za sprostitev neupravljanih virov, ko je priklicana. Metoda finalize se uporablja za sprostitev neupravljanih virov, preden je objekt uničen.
Definiran vmesnik ali razred
Odstranjevanje () je definirano v vmesniku IDdisposable. Finalize () je definiran v razredu java.lang.object.
Metoda priklica
Metodo dispose prikliče programer. Metodo finalize prikliče zbiralnik smeti.
Določitelj dostopa
Metoda odstranjevanja je javna. Metoda finalizacije je zaščitena.
Hitrost
Metoda dispose se prikliče takoj. Metoda finalize se prikliče počasi.
Zmogljivost
Odstranjevanje ne bo zmanjšalo učinkovitosti programa. Metoda finalize lahko zmanjša učinkovitost programa.

Povzetek – odstraniti () proti finalizirati ()

Ta članek je obravnaval razliko med metodama dispose in finalize v C. Razlika med dispose () in finalize () je v tem, da mora dispose () izrecno poklicati programer, medtem ko finalize () pokliče zbiralnik smeti, preden uniči objekt.

Priporočena: