Sobes.tech
Junior — Middle

Como é organizada a estrutura de dados String na memória operacional?

sobes.tech IA

Resposta da IA

No C#, uma string (string) é um objeto imutável que é representado na memória como uma sequência de caracteres codificada em UTF-16.

A estrutura de dados String na memória inclui:

  • Um objeto no heap gerenciado, que contém:
    • O cabeçalho do objeto (metadados para o coletor de lixo e o tipo).
    • O campo de comprimento da string (número de caracteres).
    • Um array de caracteres char[], onde cada caractere ocupa 2 bytes (UTF-16).

Como as strings são imutáveis, qualquer alteração resulta na criação de um novo objeto, enquanto o antigo permanece na memória até ser coletado pelo coletor de lixo.

Exemplo:

string s = "Exemplo";
// Na memória, s armazena um objeto com comprimento 7 e um array de caracteres 'E','x','e','m','p','l','e'

Portanto, uma string é um objeto com comprimento fixo e uma sequência de caracteres, otimizado para uso seguro e eficiente no .NET.