Junior — Middle
როგორ מזהה აგროვებელი ნაგავი, რომ ობიექტი აღარ გამოიყენება და შეიძლება წაიშალოს?
sobes.tech AI
პასუხი AI-სგან
Android-ში (JVM ან ART-ზე დაფუძნებული) ნაგვის შეგროვებელი (Garbage Collector) განსაზღვრავს, რომ ობიექტი აღარ გამოიყენება, თუ მასზე არ არსებობს აქტიური მითითებები ძირეულ ობიექტებიდან, როგორიცაა ნაკადების სტეკები, სტატიკური ველები და ა.შ.
პროცესი დაახლოებით ასეა:
- შეგროვებელი იწყებს ძირეულ ობიექტებიდან და აღნიშნავს ყველა ობიექტს, რომელსაც მისამართებით მიაღწევთ.
- ყველა აღნიშნულს არ მიეკუთვნება, როგორც მიუწვდომელი და შეიძლება წაიშალოს.
ამ გზით, თუ ობიექტი აქტიური კოდიდან მიუწვდომელია, ის ითვლება ნაგავს და განკუთვნილია შეგროვებისთვის.
ეს ალგორითმი სახელდება ღრმადძირით ან მარკ-და-სვიპ (mark-and-sweep).