Sobes.tech
Junior — Middle

Ինչպե՞ս է հավաքողը հայտնաբերում, որ օբյեկտը այլևս չի օգտագործվում և կարող է հեռացվել:

sobes.tech AI

Պատասխան AI-ից

Android-ում (JVM կամ ART հիմքով) աղբի հավաքիչը (Garbage Collector) որոշում է, որ օբյեկտը այլևս չի օգտագործվում, եթե նրա նկատմամբ ակտիվ հղումներ չկան ռուտային օբյեկտներից, ինչպիսիք են թելերի ստեքները, ստատիկ դաշտերը և այլն:

Պրոցեսը մոտավորապես հետևյալն է.

  • Աղբի հավաքիչը սկսում է ռուտային օբյեկտներից և նշում բոլոր այն օբյեկտները, որոնց հասանելի է հղումներով:
  • Բոլոր նշված չլինած օբյեկտները համարվում են հասանելի չլինող և կարող են հեռացվել:

Այսպիսով, եթե օբյեկտը հասանելի չէ ակտիվ կոդից, այն համարվում է աղբ և ենթակա է հավաքման:

Սա կոչվում է խորության առաջին որոնում կամ նշում և մաքրման ալգորիթմ (mark-and-sweep):