Ključna razlika – dispose () vs finalize ()
Ključna razlika između dispose () i finalize () je u tome što dispose () mora biti eksplicitno pozvan od strane programera dok finalize () poziva sakupljač smeća prije uništavanja objekta.
Dispose () je metoda za zatvaranje ili oslobađanje neupravljanih resursa kao što su datoteke, tokovi koje drži objekt. Finalize je metoda za izvođenje operacija čišćenja na neupravljanim resursima koje drži trenutni objekt prije nego što se objekt uništi.
Šta je dispose()?
Jedna od najvažnijih prednosti. NET framework je u tome što omogućava 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 da upravlja memorijom. Ali u jezicima kao što je C koji je izgrađen na. NET framework-u pruža sakupljač smeća. Pomaže u upravljanju memorijom. Ne može se koristiti za oslobađanje neupravljanih memorijskih resursa. Metoda dispose () može se koristiti za postizanje ovog zadatka.
Metoda dispose () se može koristiti za oslobađanje resursa kao što su veze baze podataka, rukovaoci datotekama itd. Ova metoda se 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 interfejsu IDisposeable.
Šta je finalize ()?
Metodu finalize poziva sakupljač smeća samo kada se referenca na objekt ne koristi dalje. Ova metoda se poziva neposredno prije uništavanja objekta. Ova metoda se implementira uz pomoć destruktora. Finalize metoda je definirana u klasi java.lang.object. Ova metoda je deklarirana kao zaštićena. Nije deklarisano kao javno kako bi se izbjeglo pristup drugim klasama. Sve u svemu, metoda finalizacije može minimizirati performanse programa jer ne oslobađa memoriju trenutno.
Koja je sličnost između dispose () i finalize()?
I dispose () i finalize() se mogu 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 fajlovi, tokovi koje drži objekt. | Finalizacija 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 se koristi za oslobađanje neupravljanih resursa kada se pozove. | Metoda finalize se koristi za oslobađanje neupravljanih resursa prije nego se objekt uništi. |
Definisani interfejs ili klasa | |
Dispose () je definisan u interfejsu IDisposable interface. | Finalizacija () je definirana u klasi java.lang.object. |
Metoda pozivanja | |
Programer poziva metodu dispose. | Metodu finalizacije poziva sakupljač smeća. |
Specifikator pristupa | |
Metoda raspolaganja je javna. | Način finalizacije je zaštićen. |
Speed | |
Metoda dispose se trenutno poziva. | Metoda finalizacije se poziva polako. |
Performans | |
Odlaganje neće umanjiti performanse programa. | Metoda finalizacije može minimizirati performanse programa. |
Sažetak – dispose () vs finalize ()
Ovaj članak govori 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 sakupljač smeća prije uništavanja objekta.