Zibil Toplayıcı və Destruktor Arasındakı Fərq

Mündəricat:

Zibil Toplayıcı və Destruktor Arasındakı Fərq
Zibil Toplayıcı və Destruktor Arasındakı Fərq

Video: Zibil Toplayıcı və Destruktor Arasındakı Fərq

Video: Zibil Toplayıcı və Destruktor Arasındakı Fərq
Video: Hissə 8: C#-da siniflər (class), constructor, destructor, static və instance üzvlər 2024, Dekabr
Anonim

Əsas Fərq – Zibil Toplayıcı və Destruktor

Əksər proqramlaşdırma dilləri Obyekt yönümlü Proqramlaşdırmanı dəstəkləyir. Obyektlərdən istifadə edərək proqram və ya proqram qurmaq metodologiyasıdır. Obyekt sinifdən istifadə etməklə yaradılır, ona görə də o, sinfin nümunəsidir. Sinif obyektin nədən ibarət olmasının təsvirini təqdim edir. Obyektlər yaradılarkən yaddaş obyektlər üçün ayrılır. Ayrılmış yaddaş proqramın icrasının sonunda buraxılmalıdır ki, həmin yaddaşı başqa obyekt üçün təkrar istifadə etsin. Java və C. NET kimi proqramlaşdırma dilləri yaddaşın idarə edilməsi üçün zibil toplayıcılardan istifadə edir, C və C++ kimi dillər isə proqramçıdan yaddaşın idarə edilməsini tələb edir. Lazımi miqdarda yaddaş ayrılmalıdır və icranın sonunda yaddaş buraxılmalıdır. Zibil toplayıcı və dağıdıcı yaddaşı buraxmaq üçün istifadə olunur. Zibil toplayıcı ilə dağıdıcı arasındakı əsas fərq ondan ibarətdir ki, zibil yığan avtomatik yaddaş idarəsini həyata keçirən proqramdır, dağıdıcı isə obyektin məhv edilməsi zamanı zibil yığan tərəfindən çağırılan xüsusi üsuldur.

Zibil Toplayıcı nədir?

Bəzi proqramlaşdırma dillərində kod mühitləri idarə olunur. Java və C proqramlaşdırma dillərində yaddaşın avtomatik idarə edilməsi həyata keçirilir. Proqramçıya obyektlərin istifadə etdiyi yaddaşı boş altmağa ehtiyac yoxdur. Yaddaşın idarə edilməsi avtomatik olaraq həyata keçirildiyi üçün mürəkkəb sistemləri də inkişaf etdirmək onlar üçün daha asandır. C, C++ və Objective C kimi proqramlaşdırma dillərində proqram obyektlərin yaddaşını yenidən sistemə buraxmalıdır. Java və C kimi dillər artıq istifadə olunmayan obyektləri müəyyən edə bilər. Daha sonra həmin obyektlər üçün ayrılmış yaddaşı yenidən sistemə buraxırlar.

C və Java proqramlaşdırma dillərində Student adlı sinif varsa, o zaman Student s=new Student () vasitəsilə obyekt yaradıla bilər; "Yeni" Tələbə sinfinin nümunəsini yaratmaq üçün istifadə olunur. Sistemdə yaddaş ayırır. “S” həmin obyekt üçün ayrılmış yaddaş blokuna istinad edir. Dil mühitləri obyektlərin istifadə edilib-edilmədiyini müəyyən edir. Əgər onlar daha sonra istifadə olunmazsa, o zaman yaddaş buraxılır və daha sonra istifadə edilə bilər.

Zibil Toplayıcı və Destruktor Arasındakı Fərq
Zibil Toplayıcı və Destruktor Arasındakı Fərq

Şəkil 01: Zibil Toplayıcı və Destruktor

Proqram işlədərkən yaddaş blokları sistem yaddaş hovuzundan ayrılır. Sonra proqram həmin yaddaşdan istifadə edərək tapşırıqları yerinə yetirir. Proqramın icrası başa çatdıqda, zibil toplayıcı proqram üçün ayrılmış yaddaş bloklarının vacib olub-olmadığını müəyyənləşdirir. Əgər onlar tələb olunmursa, həmin yaddaş blokları sistemə qaytarılır. Belə ki, zibil yığan proqramda yaradılmış obyektləri izləyə bilir. Artıq tələb olunmayan yaddaş blokları sistem yaddaş hovuzuna geri göndərilir. Bu prosesin əsas üstünlüyü proqramçının yaddaşın boşaldılması üzərində cəmləşməsinin lazım olmadığını təsdiqləməkdir. Performans və yaddaş istifadəsini tarazlaşdırır.

Destruktor nədir?

Destruktor sinfin xüsusi üzv funksiyasıdır. Obyekt əhatə dairəsindən kənara çıxanda çağırılır. Obyekt funksiya bitdikdə və ya proqramın icrasının sonunda məhv edilə bilər. Dağıdıcı sinif adı ilə eyni ada malikdir. Obyekt yaratmaq üçün konstruktordan istifadə olunur. Parametrləri qəbul edə bilir. Konstruktor həmçinin qaytarılan qiymətlərə malik ola bilər. Lakin Destruktorda heç bir qaytarma növü və ya qəbuledici parametrlər yoxdur. Bir sinif yalnız bir dağıdıcıdan ibarət ola bilər. Tilde işarəsindən istifadə edərək dağıdıcıya istinad edilir. Sinif adı Tələbədirsə, destruktor ~Student () {}-dir.

Zibil yığan daha tələb olunmayan obyektləri axtarır. O, proqram tərəfindən artıq istifadə olunmayan obyektlərin məhv edilməsini təmin edir. O, yaddaşı buraxmaq və resursları ayırmaq üçün dağıdıcı çağırır. Destruktorlar yaddaşı buraxmaq, faylları bağlamaq, şəbəkə resurslarını buraxmaq və verilənlər bazası bağlantılarını bağlamaq üçün faydalıdır. Əksər proqramlaşdırma dillərində destruktoru yazmaq lazım deyil, çünki zibil yığan şəxs standart konstruktoru özü çağırır. Əgər proqramçı C++ kimi dildə göstəricilərdən istifadə edərək hər hansı dinamik yaddaş bölgüsü edibsə, o zaman obyekt məhv edilməmişdən əvvəl yaddaşı buraxmaq üçün dağıdıcı yazmalıdır.

Zibil Toplayıcı və Destruktor arasındakı oxşarlıq nədir?

Həm Zibil Toplayıcı, həm də Destruktor proqram üçün artıq tələb olunmayan yaddaşı buraxmaq üçün istifadə olunur

Zibil Toplayıcı və Destruktor Arasındakı Fərq Nədir?

Zibil Toplayıcı vs Destruktor

Zibil yığan avtomatik yaddaş idarəsini həyata keçirən proqramdır. Destruktor obyektin məhv edilməsi zamanı zibil yığan tərəfindən çağırılan xüsusi üsuldur.
Növ
Zibil yığan proqramdır. Destruktor bir üsuldur.

Xülasə – Zibil Toplayıcı vs Destruktor

Zibil toplayıcı və dağıdıcı yaddaşın buraxılması ilə əlaqəli iki termindir. Bu məqalə Zibil Toplayıcı ilə dağıdıcı arasındakı fərqi müzakirə etdi. Zibil toplayıcı ilə dağıdıcı arasındakı fərq ondan ibarətdir ki, zibil toplayıcı avtomatik yaddaş idarəetməsini həyata keçirən bir proqramdır, dağıdıcı isə obyektin məhv edilməsi zamanı zibil yığan tərəfindən çağırılan xüsusi bir üsuldur.

Gabage Collector vs Destructor PDF faylını endirin

Bu məqalənin PDF versiyasını yükləyə və sitat qeydinə əsasən onu oflayn məqsədlər üçün istifadə edə bilərsiniz. Zəhmət olmasa PDF versiyasını buradan endirin: Zibil Toplayıcı və Destruktor Arasındakı Fərq

Tövsiyə: