Galvenā atšķirība - likvidēt () un pabeigt ()
Galvenā atšķirība starp iznīcināšanu () un pabeigšanu () ir tāda, ka programmētājam ir skaidri jāizsauc iznīcināšana (), savukārt pirms objekta iznīcināšanas atkritumu savācējam ir jāizsauc pabeigšana ().
Atbrīvošanās () ir metode, lai aizvērtu vai atbrīvotu nepārvaldītus resursus, piemēram, failus, objekta glabātās straumes. Pabeigšana ir metode, lai veiktu tīrīšanas darbības nepārvaldītiem resursiem, kas atrodas pašreizējā objektā, pirms objekts tiek iznīcināts.
Kas ir dispose()?
Viena no svarīgākajām priekšrocībām. NET sistēma nodrošina automātisku atkritumu savākšanu. Tas automātiski atbrīvo neizmantoto objektu atmiņu. Programmēšanas valodās, piemēram, C un C++, programmētājam pašam ir jārīkojas ar atmiņas pārvaldību. Bet tādās valodās kā C, kas ir veidota uz. NET framework, nodrošina atkritumu savācēju. Tas palīdz pārvaldīt atmiņu. To nevar izmantot, lai atbrīvotu nepārvaldītus atmiņas resursus. Lai veiktu šo uzdevumu, var izmantot likvidēšanas () metodi.
Atbrīvošanas () metodi var izmantot, lai atbrīvotu resursus, piemēram, datu bāzes savienojumus, failu apdarinātājus utt. Šī metode netiek izsaukta automātiski. Tāpēc programmētājam vajadzētu ieviest šo metodi. Tiklīdz šī metode tiek izsaukta, tiek atbrīvota konkrētā nepārvaldītā resursa atmiņa. Šī metode ir deklarēta saskarnē IDisposeable.
Kas ir pabeigt ()?
Pabeigšanas metodi atkritumu savācējs izsauc tikai tad, ja atsauce uz objektu netiek izmantota tālāk. Šo metodi izsauc tieši pirms objekta iznīcināšanas. Šī metode tiek īstenota ar destruktora palīdzību. Pabeigšanas metode ir definēta klasē java.lang.object. Šī metode ir deklarēta kā aizsargāta. Tas nav pasludināts par publisku, lai izvairītos no citu klašu piekļuves. Kopumā pabeigšanas metode var samazināt programmas veiktspēju, jo tā uzreiz neatbrīvo atmiņu.
Kāda ir līdzība starp likvidēšanu () un pabeigšanu ()?
Gan atmest (), gan pabeigt () var izmantot, lai atbrīvotu nepārvaldītam resursam atvēlēto atmiņu
Kāda ir atšķirība starp likvidēšanu () un pabeigšanu ()?
atbrīvoties () pret pabeigšanu () |
|
Atbrīvošanās () ir metode, lai aizvērtu vai atbrīvotu nepārvaldītus resursus, piemēram, failus, straumes, kas atrodas objektā. | Pabeigšana ir metode, lai veiktu pašreizējā objekta pārvaldīto resursu tīrīšanas darbības, pirms objekts tiek iznīcināts. |
Mērķis | |
Atsavināšanas metode tiek izmantota, lai atbrīvotu nepārvaldītus resursus, kad tā tiek izsaukta. | Pabeigšanas metode tiek izmantota, lai atbrīvotu nepārvaldītus resursus, pirms objekts tiek iznīcināts. |
Definēta saskarne vai klase | |
Atbrīvošanās () ir definēta saskarnē IDvienreizējais interfeiss. | Pabeigšana () ir definēta java.lang.object class. |
Izsaukšanas metode | |
Atsavināšanas metodi izsauc programmētājs. | Atkritumu savācējs izsauc pabeigšanas metodi. |
Piekļuves specifikators | |
Atbrīvošanās metode ir publiska. | Pabeigšanas metode ir aizsargāta. |
Ātrums | |
Atbrīvošanās metode tiek izsaukta uzreiz. | Pabeigšanas metode tiek izsaukta lēni. |
Performance | |
Atbrīvošanās nesamazinās programmas veiktspēju. | Pabeigšanas metode var samazināt programmas veiktspēju. |
Kopsavilkums - likvidēt () pret pabeigšanu ()
Šajā rakstā tika apspriesta atšķirība starp iznīcināšanas un pabeigšanas metodēm C. Atšķirība starp likvidēšanu () un pabeigšanu () ir tāda, ka programmētājam ir skaidri jāizsauc iznīcināšana (), savukārt pirms objekta iznīcināšanas izsauc pabeigšanu () atkritumu savācējam.