სხვაობა ნაგვის შემგროვებელსა და დესტრუქტორს შორის

Სარჩევი:

სხვაობა ნაგვის შემგროვებელსა და დესტრუქტორს შორის
სხვაობა ნაგვის შემგროვებელსა და დესტრუქტორს შორის

ვიდეო: სხვაობა ნაგვის შემგროვებელსა და დესტრუქტორს შორის

ვიდეო: სხვაობა ნაგვის შემგროვებელსა და დესტრუქტორს შორის
ვიდეო: როგორ დავაკარგვინე გოგოს ქალიშვილობა- პირადი ისტორია.#2 2024, ივლისი
Anonim

ძირითადი განსხვავება - ნაგვის შემგროვებელი vs დესტრუქტორი

პროგრამირების ენების უმეტესობა მხარს უჭერს ობიექტზე ორიენტირებულ პროგრამირებას. ეს არის პროგრამის ან პროგრამული უზრუნველყოფის აგების მეთოდოლოგია ობიექტების გამოყენებით. ობიექტი იქმნება კლასის გამოყენებით, ამიტომ ის არის კლასის მაგალითი. კლასი იძლევა აღწერას, რისგან უნდა შედგებოდეს ობიექტი. ობიექტების შექმნისას მეხსიერება ეთმობა ობიექტებს. გამოყოფილი მეხსიერება უნდა გათავისუფლდეს პროგრამის შესრულების ბოლოს, რათა ეს მეხსიერება ხელახლა გამოიყენოს სხვა ობიექტისთვის. პროგრამირების ენები, როგორიცაა Java და C. NET, იყენებენ ნაგვის კოლექტორებს მეხსიერების მართვისთვის, ხოლო ენები, როგორიცაა C და C++, მოითხოვს პროგრამისტს მეხსიერების მართვას.მეხსიერების საჭირო რაოდენობა უნდა გამოიყოს, შესრულების ბოლოს კი მეხსიერება უნდა განთავისუფლდეს. ნაგვის შემგროვებელი და დესტრუქტორი გამოიყენება მეხსიერების გასათავისუფლებლად. ნაგვის შემგროვებელსა და დესტრუქტორს შორის მთავარი განსხვავება ისაა, რომ ნაგვის შემგროვებელი არის პროგრამული უზრუნველყოფა, რომელიც ასრულებს მეხსიერების ავტომატურ მართვას, ხოლო დესტრუქტორი არის სპეციალური მეთოდი, რომელსაც ნაგვის შემგროვებელი უწოდებს ობიექტის განადგურების დროს.

რა არის ნაგვის შემგროვებელი?

ზოგიერთ პროგრამირების ენას აქვს მართული კოდის გარემო. პროგრამირების ენებში Java და C ხორციელდება მეხსიერების ავტომატური მართვა. პროგრამისტს არ სჭირდება ობიექტების მიერ გამოყენებული მეხსიერების გათავისუფლება. მათთვის უფრო ადვილია რთული სისტემების შემუშავება, რადგან მეხსიერების მართვა ავტომატურად ხდება. პროგრამირების ენებში, როგორიცაა C, C++ და Objective C, პროგრამამ უნდა გაათავისუფლოს ობიექტების მეხსიერება სისტემაში. ისეთ ენებს, როგორიცაა Java და C, შეუძლიათ გაარკვიონ ის ობიექტები, რომლებიც აღარ გამოიყენება.ამის შემდეგ ისინი ათავისუფლებენ ამ ობიექტებისთვის გამოყოფილ მეხსიერებას სისტემაში.

პროგრამირების ენებში C და Java, თუ არის კლასი სახელწოდებით Student, მაშინ ობიექტი შეიძლება შეიქმნას Student s=new Student (); „ახალი“გამოიყენება სტუდენტური კლასის ინსტანციის შესაქმნელად. ის ანაწილებს მეხსიერებას სისტემაში. "s" მიუთითებს ამ ობიექტისთვის გამოყოფილ მეხსიერების ბლოკზე. ენობრივი გარემო განსაზღვრავს, გამოიყენება თუ არა ობიექტები. თუ ისინი შემდგომში არ გამოიყენებენ, მაშინ მეხსიერება გამოთავისუფლდება და მისი გამოყენება შეიძლება მოგვიანებით.

განსხვავება ნაგვის შემგროვებელსა და დესტრუქტორს შორის
განსხვავება ნაგვის შემგროვებელსა და დესტრუქტორს შორის

სურათი 01: ნაგვის შემგროვებელი და დამღუპველი

პროგრამის გაშვებისას, მეხსიერების ბლოკები გამოიყოფა სისტემის მეხსიერების აუზიდან. შემდეგ პროგრამა ასრულებს დავალებებს ამ მეხსიერების გამოყენებით.როდესაც პროგრამის შესრულება დასრულდება, ნაგვის შემგროვებელი ადგენს, არის თუ არა პროგრამისთვის გამოყოფილი მეხსიერების ბლოკები არსებითი თუ არა. თუ ისინი არ არის საჭირო, მეხსიერების ბლოკები უბრუნდება სისტემას. ასე რომ, ნაგვის შემგროვებელს შეუძლია პროგრამაში შექმნილ ობიექტებს თვალყური ადევნოს. მეხსიერების ბლოკები, რომლებიც აღარ არის საჭირო, იგზავნება სისტემის მეხსიერების აუზში. ამ პროცესის მთავარი უპირატესობა არის იმის დადასტურება, რომ პროგრამისტს არ სჭირდება კონცენტრირება მეხსიერების განაწილებაზე. ის აბალანსებს შესრულებას და მეხსიერების გამოყენებას.

რა არის დესტრუქტორი?

დესტრუქტორი არის კლასის სპეციალური წევრი ფუნქცია. ის გამოიძახება ყოველთვის, როცა ობიექტი სცილდება ფარგლებს. ობიექტი შეიძლება განადგურდეს ფუნქციის დასრულებისას ან პროგრამის შესრულების ბოლოს. დესტრუქტორს აქვს იგივე სახელი, როგორც კლასის სახელი. კონსტრუქტორი გამოიყენება ობიექტის შესაქმნელად. მას შეუძლია მიიღოს პარამეტრები. კონსტრუქტორს ასევე შეიძლება ჰქონდეს დაბრუნების მნიშვნელობები. მაგრამ Destructor-ში არ არსებობს დაბრუნების ტიპი ან მიღების პარამეტრები.კლასი შეიძლება შედგებოდეს მხოლოდ ერთი დესტრუქტორისაგან. დესტრუქტორი მოხსენიებულია ტილდის ნიშნის გამოყენებით. თუ კლასის სახელია Student, მაშინ დესტრუქტორი არის ~Student () {}.

ნაგვის შემგროვებელი ეძებს ობიექტებს, რომლებიც აღარ არის საჭირო. ის უზრუნველყოფს იმ ობიექტების განადგურებას, რომლებსაც პროგრამა აღარ იყენებს. ის მოუწოდებს დესტრუქტორს, გაათავისუფლოს მეხსიერება და გაანაწილოს რესურსები. დესტრუქტორები სასარგებლოა მეხსიერების გასათავისუფლებლად, ფაილების დახურვისთვის, ქსელის რესურსების გასათავისუფლებლად და მონაცემთა ბაზის კავშირების დახურვისთვის. უმეტეს პროგრამირების ენებში არ არის საჭირო დესტრუქტორის დაწერა, რადგან ნაგვის შემგროვებელი თავისთავად იძახებს ნაგულისხმევ კონსტრუქტორს. თუ პროგრამისტმა გააკეთა რაიმე დინამიური მეხსიერების განაწილება პოინტერების გამოყენებით ისეთ ენაზე, როგორიც არის C++, მაშინ მან უნდა დაწეროს დესტრუქტორი მეხსიერების გასათავისუფლებლად ობიექტის განადგურებამდე.

რა მსგავსებაა ნაგვის შემგროვებელსა და დესტრუქტორს შორის?

Garbage Collector და Destructor გამოიყენება მეხსიერების გასათავისუფლებლად, რომელიც აღარ არის საჭირო პროგრამისთვის

რა განსხვავებაა ნაგვის შემგროვებელსა და დესტრუქტორს შორის?

ნაგვის შემგროვებელი vs დესტრუქტორი

ნაგვის შემგროვებელი არის პროგრამული უზრუნველყოფა, რომელიც ასრულებს მეხსიერების ავტომატურ მართვას. დესტრუქტორი არის სპეციალური მეთოდი, რომელსაც ნაგვის შემგროვებელი უწოდებს ობიექტის განადგურების დროს.
ტიპი
ნაგვის შემგროვებელი არის პროგრამული უზრუნველყოფა. დესტრუქტორი მეთოდია.

რეზიუმე – ნაგვის შემგროვებელი vs დესტრუქტორი

ნაგვის შემგროვებელი და დესტრუქტორი მეხსიერების გათავისუფლებასთან დაკავშირებული ორი ტერმინია. ამ სტატიაში განხილული იყო განსხვავება ნაგვის შემგროვებელსა და დესტრუქტორს შორის. ნაგვის შემგროვებელსა და დესტრუქტორს შორის განსხვავება ისაა, რომ ნაგვის შემგროვებელი არის პროგრამული უზრუნველყოფა, რომელიც ასრულებს მეხსიერების ავტომატურ მართვას, ხოლო დესტრუქტორი არის სპეციალური მეთოდი, რომელსაც ნაგვის შემგროვებელი უწოდებს ობიექტის განადგურების დროს.

ჩამოტვირთეთ Garbage Collector vs Destructor

შეგიძლიათ ჩამოტვირთოთ ამ სტატიის PDF ვერსია და გამოიყენოთ იგი ოფლაინ მიზნებისთვის ციტირების შენიშვნის მიხედვით. გთხოვთ გადმოწეროთ PDF ვერსია აქ: განსხვავება ნაგვის შემგროვებელსა და დესტრუქტორს შორის

გირჩევთ: