Junior — Middle
Кадом марҳилаҳои рушдро метавон дар давраи ҳаёти объектҳо дар хотираи идорашаванда фарқ кард?
sobes.tech AI
Ҷавоб аз AI
Цикълът на живот на обектите в управляемата памет в C# може да бъде разделен на няколко етапа:
- Създаване (Allocation) — обектът се създава в управляемия куп (heap) с помощта на оператора
new. - Използване (Usage) — обектът се използва в програмата, а препратките към него се съхраняват в променливи.
- Събиране на отпадъци (Garbage Collection) — когато няма повече препратки към обекта, събирачът на отпадъци го маркира като кандидат за изтриване.
- Освобождаване на паметта (Finalization и Deallocation) — ако обектът има финализатор (
Finalize), той се извиква преди освобождаването на паметта; след това паметта се освобождава.
Важен момент — събирачът на отпадъци в .NET работи по поколения (Gen 0, Gen 1, Gen 2), което оптимизира производителността и времето за почистване.
Пример:
class MyClass {
~MyClass() {
// Финализатор, извиква се преди изтриването на обекта
}
}
var obj = new MyClass(); // Създаване
// Използване на obj
obj = null; // Обектът вече не е достъпен
// Събирачът на отпадъци ще освободи паметта по-късно