Ključna razlika – odlaganje () naspram finaliziranja ()
Ključna razlika između dispose () i finalize () je u tome što programer mora eksplicitno pozvati dispose () dok finalize () poziva skupljač smeća prije uništavanja objekta.
Dispose () je metoda za zatvaranje ili oslobađanje resursa kojima se ne upravlja kao što su datoteke, tokovi koje drži objekt. Finaliziranje je metoda za izvođenje operacija čišćenja neupravljanih resursa koje trenutni objekt drži prije nego što se objekt uništi.
Što je dispose()?
Jedna od najvažnijih prednosti. NET okvir je da omogućuje automatsko prikupljanje smeća. Automatski oslobađa memoriju objekata koji se ne koriste. U programskim jezicima kao što su C i C++, programer mora sam upravljati memorijom. Ali u jezicima kao što je C koji je izgrađen na. NET okviru pruža skupljač smeća. Pomaže u upravljanju pamćenjem. Ne može se koristiti za oslobađanje neupravljanih memorijskih resursa. Za postizanje ovog zadatka može se koristiti metoda dispose ().
Metoda dispose () može se koristiti za oslobađanje resursa kao što su veze s bazom podataka, rukovatelji datotekama itd. Ova se metoda ne poziva automatski. Stoga bi programer trebao implementirati ovu metodu. Čim se ova metoda pozove, oslobađa se memorija za određeni neupravljani resurs. Ova metoda je deklarirana u sučelju IDisposeable.
Što je finalize ()?
Metodu finalize poziva skupljač smeća samo kada se referenca na objekt dalje ne koristi. Ova metoda se poziva neposredno prije uništavanja objekta. Ova metoda se implementira uz pomoć destruktora. Metoda finalize definirana je u klasi java.lang.object. Ova metoda je deklarirana kao zaštićena. Nije deklarirano kao javno kako bi se izbjeglo pristupanje drugih klasa. Općenito, metoda finalizacije može minimizirati performanse programa jer ne oslobađa memoriju odmah.
Koja je sličnost između dispose () i finalize()?
I dispose () i finalize() mogu se koristiti za oslobađanje memorije dodijeljene neupravljanom resursu
Koja je razlika između dispose () i finalize()?
dispose () vs finalize () |
|
Dispose () je metoda za zatvaranje ili oslobađanje neupravljanih resursa kao što su datoteke, tokovi koje drži objekt. | Dovršavanje je metoda za izvođenje operacija čišćenja na neupravljanim resursima koje trenutni objekt drži prije nego što se objekt uništi. |
Cilj | |
Metoda dispose koristi se za oslobađanje neupravljanih resursa kada se pozove. | Metoda finalize koristi se za oslobađanje resursa kojima se ne upravlja prije nego što se objekt uništi. |
Definirano sučelje ili klasa | |
Dispose () definiran je u sučelju IDisposable. | Finalizacija () je definirana u klasi java.lang.object. |
Metoda pozivanja | |
Metodu dispose poziva programer. | Metodu finalize poziva skupljač smeća. |
Specifikator pristupa | |
Metoda odlaganja je javna. | Metoda finalizacije je zaštićena. |
Brzina | |
Metoda dispose se poziva trenutno. | Metoda finaliziranja poziva se polako. |
Performanse | |
Odlaganje neće umanjiti performanse programa. | Metoda finaliziranja može minimizirati performanse programa. |
Sažetak – odlaganje () naspram finaliziranja ()
Ovaj članak raspravlja o razlici između metoda dispose i finalize u C. Razlika između dispose() i finalize() je u tome što programer mora eksplicitno pozvati dispose() dok finalize() poziva skupljač smeća prije uništavanja objekta.