Junior — Middle
Como é que a memória é gerida e estruturada no ambiente C#?
sobes.tech IA
Resposta da IA
Em C#, a gestão de memória é feita automaticamente pelo coletor de lixo (Garbage Collector, GC). A memória é dividida em duas áreas principais:
- Stack (Pilha) — armazena variáveis locais e parâmetros de métodos. A memória é alocada e liberada muito rapidamente segundo o princípio LIFO.
- Heap (Montão) — armazena objetos e dados que vivem além do tempo de execução do método. A memória no heap é gerida pelo coletor de lixo.
O coletor de lixo liberta periodicamente a memória ocupada por objetos aos quais já não há referências. Isto liberta o programador de gerir manualmente a memória e reduz o risco de vazamentos.
Exemplo de criação de um objeto no heap:
class Program
{
static void Main()
{
Person p = new Person(); // objeto criado no heap
}
}
class Person
{
public string Name { get; set; }
}
Aqui, o objeto Person é criado no heap, e a variável p está na pilha, referenciando esse objeto.