Հիմնական տարբերություն – տնօրինել () ընդդեմ վերջնականացնել ()
Տարադրել () և վերջնականացնել () միջև հիմնական տարբերությունն այն է, որ dispose ()-ը պետք է բացահայտորեն կանչվի ծրագրավորողի կողմից, մինչդեռ վերջնական ()-ը կանչվում է աղբահանողի կողմից մինչև օբյեկտը ոչնչացնելը:
Տեղադրումը () մեթոդ է փակելու կամ ազատելու չկառավարվող ռեսուրսները, ինչպիսիք են ֆայլերը, հոսքերը, որոնք պահվում են օբյեկտի կողմից: Վերջնականացումը մեթոդ է՝ մաքրման գործողություններ իրականացնելու չկառավարվող ռեսուրսների վրա, որոնք պահվում են ընթացիկ օբյեկտի կողմից՝ նախքան օբյեկտի ոչնչացումը:
Ի՞նչ է dispose()?
-ի ամենակարևոր առավելություններից մեկը. NET շրջանակն այն է, որ այն ապահովում է աղբի ավտոմատ հավաքում: Այն ավտոմատ կերպով ազատում է չօգտագործվող օբյեկտների հիշողությունը: Ծրագրավորման լեզուներում, ինչպիսիք են C և C++-ը, ծրագրավորողը պետք է ինքնուրույն կառավարի հիշողության կառավարումը: Բայց այնպիսի լեզուներով, ինչպիսին է C-ը, որը կառուցված է. NET Framework-ի վրա, ապահովում է աղբահանող սարքը: Այն օգնում է կառավարել հիշողությունը։ Այն չի կարող օգտագործվել չկառավարվող հիշողության ռեսուրսները ազատելու համար: Այս առաջադրանքին հասնելու համար կարող է օգտագործվել dispose () մեթոդը:
Հեռացնել () մեթոդը կարող է օգտագործվել ռեսուրսներ թողարկելու համար, ինչպիսիք են տվյալների բազայի միացումները, ֆայլերի մշակիչները և այլն: Այս մեթոդը ինքնաբերաբար չի կոչվում: Հետեւաբար, ծրագրավորողը պետք է իրականացնի այս մեթոդը: Հենց որ այս մեթոդը գործարկվի, տվյալ չկառավարվող ռեսուրսի հիշողությունն ազատվում է: Այս մեթոդը հայտարարված է IDisposeable ինտերֆեյսում:
Ի՞նչ է վերջնական ()?
Վերջնականացման մեթոդը կանչվում է միայն աղբահանի կողմից, երբ օբյեկտի հղումը հետագայում չի օգտագործվում: Այս մեթոդը կոչվում է օբյեկտը ոչնչացնելուց անմիջապես առաջ: Այս մեթոդն իրականացվում է դեստրուկտորի օգնությամբ։ Վերջնականացման մեթոդը սահմանվում է java.lang.object դասում: Այս մեթոդը հայտարարված է որպես պաշտպանված: Այն չի հայտարարվում որպես հրապարակային՝ մյուս դասերի մուտքից խուսափելու համար: Ընդհանուր առմամբ, վերջնականացման մեթոդը կարող է նվազագույնի հասցնել ծրագրի կատարումը, քանի որ այն անմիջապես չի ազատում հիշողությունը:
Ո՞րն է նմանությունը ցրելու () և վերջնականացնելու () միջև:
Եվ dispose () և finalize() կարող են օգտագործվել չկառավարվող ռեսուրսի համար հատկացված հիշողությունը ազատելու համար:
Ո՞րն է տարբերությունը տնօրինելու () և վերջնականացնելու () միջև:
տարածել () vs վերջնականացնել () |
|
Տարադրումը () մի մեթոդ է փակելու կամ ազատելու չկառավարվող ռեսուրսները, ինչպիսիք են ֆայլերը, հոսքերը, որոնք պահվում են օբյեկտի կողմից: | Վերջնականացումը մեթոդ է՝ մաքրման գործողություններ իրականացնելու չկառավարվող ռեսուրսների վրա, որոնք պահվում են ընթացիկ օբյեկտի կողմից, նախքան օբյեկտի ոչնչացումը: |
Նպատակ | |
Հարցման մեթոդն օգտագործվում է չկառավարվող ռեսուրսներն ազատելու համար, երբ այն կանչվում է: | Վերջնականացման մեթոդն օգտագործվում է չկառավարվող ռեսուրսները ազատելու համար՝ նախքան օբյեկտի ոչնչացումը: |
Սահմանված միջերես կամ դաս | |
Տեղադրումը () սահմանվում է IDdisposable ինտերֆեյսում: | Վերջնականացումը () սահմանվում է java.lang.object դասում: |
կանչելու մեթոդ | |
Հարցման մեթոդը կանչվում է ծրագրավորողի կողմից: | Վերջնականացման մեթոդը կանչվում է աղբահանի կողմից: |
Մուտքի ցուցիչ | |
Հեռացման եղանակը հրապարակային է: | Վերջնականացման մեթոդը պաշտպանված է: |
Արագություն | |
Հարցման մեթոդը կանչվում է ակնթարթորեն: | Վերջնականացման մեթոդը դանդաղ է կանչվում: |
Կատարում | |
Հեռացումը չի նվազեցնի ծրագրի կատարումը: | Վերջնականացման մեթոդը կարող է նվազագույնի հասցնել ծրագրի արդյունավետությունը: |
Ամփոփում – տնօրինել () ընդդեմ վերջնականացնել ()
Այս հոդվածը քննարկեց C-ում ցրելու և վերջնականացնելու մեթոդների տարբերությունը: Հեռացնելու () և վերջնականացնելու () միջև տարբերությունն այն է, որ dispose ()-ը պետք է բացահայտորեն կանչվի ծրագրավորողի կողմից, մինչդեռ վերջնական ()-ը կանչվի աղբահանի կողմից՝ նախքան օբյեկտը ոչնչացնելը: