Junior — Middle
Ինչպե՞ս է հավաքողը հայտնաբերում, որ օբյեկտը այլևս չի օգտագործվում և կարող է հեռացվել:
sobes.tech AI
Պատասխան AI-ից
Android-ում (JVM կամ ART հիմքով) աղբի հավաքիչը (Garbage Collector) որոշում է, որ օբյեկտը այլևս չի օգտագործվում, եթե նրա նկատմամբ ակտիվ հղումներ չկան ռուտային օբյեկտներից, ինչպիսիք են թելերի ստեքները, ստատիկ դաշտերը և այլն:
Պրոցեսը մոտավորապես հետևյալն է.
- Աղբի հավաքիչը սկսում է ռուտային օբյեկտներից և նշում բոլոր այն օբյեկտները, որոնց հասանելի է հղումներով:
- Բոլոր նշված չլինած օբյեկտները համարվում են հասանելի չլինող և կարող են հեռացվել:
Այսպիսով, եթե օբյեկտը հասանելի չէ ակտիվ կոդից, այն համարվում է աղբ և ենթակա է հավաքման:
Սա կոչվում է խորության առաջին որոնում կամ նշում և մաքրման ալգորիթմ (mark-and-sweep):