Разлика между боклука и разрушителя

Ключова разлика - Събирач на боклук срещу пещ за горене на отпадъци
 

Повечето езици за програмиране поддържат обектно ориентирано програмиране. Това е методология за изграждане на програма или софтуер, използвайки обекти. Обект се създава с помощта на клас, така че е инстанция на клас. Класът предоставя описанието на какво трябва да се състои обектът. При създаването на обекти се разпределя памет за обектите. Разпределената памет трябва да бъде освободена в края на изпълнението на програмата, за да се използва отново тази памет за някакъв друг обект. Езици за програмиране като Java и C # .NET използват колектори за боклук за управление на паметта, докато езици като C и C ++ изискват програмиста да управлява управлението на паметта. Трябва да се разпредели необходимото количество памет, а в края на изпълнението паметта трябва да бъде освободена. Колекторът и разрушителят за боклук се използват за освобождаване на памет. Най- ключова разлика между боклука и разрушителя е това боклук събирач е софтуер, който извършва автоматично управление на паметта, докато разрушителят е специален метод, наречен от събирача на боклук по време на унищожаването на обекта.

СЪДЪРЖАНИЕ

1. Преглед и ключова разлика
2. Какво е боклук
3. Какво е разрушител
4. Прилики между боклука и разрушителя
5. Паралелно сравнение - Събирач на боклук срещу Деструктор в таблична форма
6. Резюме

Какво е боклук?

Някои езици за програмиране управляват кодови среди. В езиците за програмиране Java и C # се извършва автоматично управление на паметта. Програмистът няма нужда да освобождава паметта, използвана от обектите. За тях е по-лесно да разработят дори сложни системи, защото управлението на паметта се извършва автоматично. В езици за програмиране като C, C ++ и Objective C програмата трябва да освободи паметта на обектите обратно в системата. Езици като Java и C # могат да разберат обектите, които вече не се използват. След това те освобождават паметта, отредена за тези обекти обратно в системата.

В езиците за програмиране C # и Java, ако има клас, наречен Student, тогава обект може да бъде създаден с помощта на Student s = new Student (); „Новото“ се използва за създаване на екземпляр от клас Student. Той разпределя памет в системата. 'S' се отнася до блока памет, разпределен за този обект. Езиковите среди идентифицират дали обектите се използват или не. Ако те не се използват допълнително, тогава паметта се освобождава и може да се използва по-късно.

Фигура 01: Събирач на боклук и разрушител

Когато стартирате програма, блоковете памет се разпределят от пула на системната памет. Тогава програмата изпълнява задачите, използвайки тази памет. Когато изпълнението на програмата приключи, събирачът на боклук преценява дали разпределените блокове памет за програмата са от съществено значение или не. Ако не са необходими, тези блокове с памет се връщат в системата. Така че събирачът на боклук може да проследи създадените обекти в програмата. Блоковете от паметта, които вече не са необходими, се изпращат обратно в пула на системната памет. Основното предимство на този процес е да се потвърди, че програмистът не трябва да се концентрира върху разместването на паметта. Той балансира производителността и използването на паметта.

Какво е разрушител?

Деструкторът е специална функция на член на клас. Извиква се всеки път, когато обектът излезе извън обхвата. Обектът може да бъде унищожен, когато дадена функция приключи или в края на изпълнението на програмата. Деструкторът има същото име като името на класа. Конструкторът се използва за създаване на обекта. Може да приема параметри. Конструкторът може да има и стойности за връщане. Но в Destructor няма връщащ тип или приемащи параметри. Един клас може да се състои само от един разрушител. Препраща се деструктор, използвайки знака на тилда. Ако името на класа е Student, тогава деструкторът е ~ Student () .

Събирачът на боклук търси обектите, които вече не се изискват. Той гарантира, че обектите, които вече не се използват от програмата, трябва да бъдат унищожени. Той призовава деструктора да освободи паметта и да раздели ресурсите. Разрушителите са полезни за освобождаване на памет, затваряне на файлове, освобождаване на мрежови ресурси и за затваряне на връзки с база данни. В повечето езици за програмиране не е необходимо да се пише разрушителят, тъй като колекторът за боклук извиква конструктора по подразбиране сам. Ако програмистът е направил всяко динамично разпределение на паметта, използвайки указатели на език като C ++, той трябва да напише деструктор, за да освободи памет преди обектът да бъде унищожен.

Каква е приликата между боклука и разрушителя?

  • Както Garbage Collector, така и Destructor се използват за освобождаване на памет, която вече не е необходима за програмата.

Каква е разликата между боклука и разрушителя?

Събирач на боклук срещу разрушител

Събирач на боклук е софтуер, който извършва автоматично управление на паметта. Разрушителят е специален метод, наречен от събирача на боклук по време на унищожаването на обекта.
 Тип
Събирач на боклук е софтуер. Деструктор е метод.

резюме - Събирач на боклук срещу пещ за горене на отпадъци

Събирач на боклук и разрушител са два термина, свързани с освобождаването на паметта. Тази статия обсъжда разликата между боклук колектор и разрушител. Разликата между събирача на боклук и разрушител е, че боклукът е софтуер, който осъществява автоматично управление на паметта, докато разрушителят е специален метод, наречен от събирача на боклук по време на унищожаването на обекта.

Изтеглете PDF файла на Garbage Collector vs Destructor

Можете да изтеглите PDF версията на тази статия и да я използвате за офлайн цели, съгласно цитираната бележка. Моля, изтеглете PDF версията тук: Разлика между боклука и разрушителя

справка:

1.lyndapodcast. „Как работи сметосъбирането на C # | Линда. Урок за работа. " Как работи C # събирането на боклук | lynda.Com урок, LinkedIn учебни решения, 19 септември 2011 г. Достъпно тук 
2.Деструктори в С. " GeeksforGeeks, 27 май 2017 г. Достъпно тук  
3.Jain, Shubham. „Събирач на боклук и разрушител в C #.“ C # ъгъл. Налични тук