Diferència clau: eliminar () vs finalitzar ()
La diferència clau entre disposa () i finalize () és que disposa () ha de ser invocat explícitament pel programador mentre que finalize () és invocat pel col·lector d'escombraries abans de destruir l'objecte.
El disposa () és un mètode per tancar o alliberar recursos no gestionats, com ara fitxers, fluxos d'un objecte. La finalització és un mètode per realitzar operacions de neteja en recursos no gestionats que té l'objecte actual abans que l'objecte es destrueixi.
Què és disposar()?
Un dels avantatges més importants de. NET framework és que proporciona una recollida automàtica d'escombraries. Allibera automàticament la memòria dels objectes que no s'utilitzen. En llenguatges de programació com C i C++, el programador ha de gestionar la gestió de la memòria pel seu compte. Però en llenguatges com C que es basa en. NET Framework proporciona el col·lector d'escombraries. Ajuda a gestionar la memòria. No es pot utilitzar per alliberar els recursos de memòria no gestionats. El mètode disposa () es pot utilitzar per aconseguir aquesta tasca.
El mètode disposa () es pot utilitzar per alliberar recursos com ara connexions a bases de dades, gestors de fitxers, etc. Aquest mètode no s'anomena automàticament. Per tant, el programador hauria d'implementar aquest mètode. Tan bon punt s'invoca aquest mètode, s'allibera la memòria del recurs no gestionat concret. Aquest mètode es declara a la interfície IDisposeable.
Què és finalitzar ()?
El col·lector d'escombraries només crida al mètode finalize quan la referència a un objecte no s'utilitza més. Aquest mètode s'anomena just abans de destruir l'objecte. Aquest mètode s'implementa amb l'ajuda del destructor. El mètode finalize es defineix a la classe java.lang.object. Aquest mètode està declarat com a protegit. No es declara com a públic per evitar l'accés de les altres classes. En general, el mètode de finalització pot minimitzar el rendiment del programa perquè no allibera la memòria a l'instant.
Quina semblança hi ha entre disposar () i finalitzar ()?
Tant disposa () com finalize() es poden utilitzar per alliberar la memòria assignada per a un recurs no gestionat
Quina diferència hi ha entre disposar () i finalitzar ()?
eliminar () vs finalitzar () |
|
L'eliminació () és un mètode per tancar o alliberar recursos no gestionats, com ara fitxers, fluxos d'un objecte. | La finalització és un mètode per realitzar operacions de neteja en recursos no gestionats que té l'objecte actual abans que l'objecte es destrueixi. |
Objectiu | |
El mètode elimina s'utilitza per alliberar els recursos no gestionats quan s'invoca. | El mètode finalize s'utilitza per alliberar els recursos no gestionats abans que l'objecte es destrueixi. |
Interfície o classe definida | |
El disposa () es defineix a la interfície IDiposable. | La finalització () es defineix a la classe java.lang.object. |
Mètode d'invocació | |
El programador invoca el mètode d'eliminació. | El recollidor d'escombraries invoca el mètode finalize. |
Especificador d'accés | |
El mètode d'eliminació és públic. | El mètode de finalització està protegit. |
Velocitat | |
El mètode d'eliminació s'invoca a l'instant. | El mètode de finalització s'invoca lentament. |
Rendiment | |
L'eliminació no minimitzarà el rendiment del programa. | El mètode de finalització pot minimitzar el rendiment del programa. |
Resum: elimina () vs finalitza ()
En aquest article es parla de la diferència entre els mètodes d'eliminació i finalització en C. La diferència entre disposa () i finalize () és que disposa () ha de ser invocat explícitament pel programador mentre que finalize () és invocat pel col·lector d'escombraries abans de destruir l'objecte.