Junior — Middle
Kā tiek pārvaldīta un strukturēta atmiņa C# vidē?
sobes.tech AI
Atbilde no AI
C# valodā atmiņas pārvaldība tiek veikta automātiski, izmantojot atkritumu savācēju (Garbage Collector, GC). Atmiņa ir sadalīta divās galvenajās teritorijās:
- Steks (Stack) — glabā vietējās mainīgās un metožu parametrus. Atmiņa tiek piešķirta un atbrīvota ļoti ātri pēc LIFO principa.
- Heap (Heap) — glabā objektus un datus, kas ilgāk pastāv par metodes izpildes laiku. Heap atmiņu pārvalda atkritumu savācējs.
Atkritumu savācējs periodiski atbrīvo atmiņu, ko aizņem objekti, kam vairs nav atsauces. Tas atvieglo izstrādātājam manuālas atmiņas pārvaldības nepieciešamību un samazina noplūdes risku.
Piemērs, kā tiek izveidots objekts heapā:
class Program
{
static void Main()
{
Person p = new Person(); // objekts tiek izveidots heapā
}
}
class Person
{
public string Name { get; set; }
}
Šeit Person objekts tiek izveidots heapā, bet mainīgais p atrodas stekā, atsaucoties uz šo objektu.