Junior — Middle
Jak je spravována a strukturována paměť v prostředí C#?
sobes.tech AI
Odpověď od AI
V C# je správa paměti prováděna automaticky pomocí sběrače odpadků (Garbage Collector, GC). Paměť je rozdělena do dvou hlavních oblastí:
- Zásobník (Stack) — ukládá místní proměnné a parametry metod. Paměť je přiřazována a uvolňována velmi rychle podle principu LIFO.
- Hromada (Heap) — ukládá objekty a data, která žijí déle než doba běhu metody. Paměť na hromadě spravuje garbage collector.
Garbage collector periodicky uvolňuje paměť obsazenou objekty, na které již nejsou odkazy. To odlehčuje vývojáři od ruční správy paměti a snižuje riziko úniků.
Příklad vytvoření objektu na hromadě:
class Program
{
static void Main()
{
Person p = new Person(); // objekt je vytvořen na hromadě
}
}
class Person
{
public string Name { get; set; }
}
Zde je objekt Person vytvořen na hromadě, zatímco proměnná p je na zásobníku a odkazuje na tento objekt.