Questão FC374738
Na linguagem de programação Java, a classe StringBuilder é empregada para criar e manipular informações de string dinâmica, ou seja, strings modificáveis. Em relação a tal classe,
Linguagens de Programação
Instituto Consulplan · 2023
Na linguagem de programação Java, a classe StringBuilder é empregada para criar e manipular informações de string dinâmica, ou seja, strings modificáveis. Em relação a tal classe, assinale a afirmativa correta.
- StringBuilders não são seguros para thread.
- A classe StringBuilder fornece oito construtores.
- O método length garante que um StringBuilder tenha pelo menos a capacidade especificada.
- Se a capacidade de um StringBuilder for excedida, há um estouro de buffer; pois a capacidade não se expande para acomodar mais caracteres.
- Em programas que frequentemente realizam a concatenação de strings, em geral, não se deve implementar as modificações com a classe StringBuilder, pois não há qualquer tipo de ganho.
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
StringBuilder é não seguro para thread: seus métodos não são sincronizados, portanto acessos concorrentes que modificam o mesmo objeto podem causar resultados imprevisíveis.
Quando duas ou mais threads chamam, por exemplo, append simultaneamente, ocorre interleaving de operações e a sequência final pode ficar corrompida ou incompleta.
Essa escolha é proposital: a ausência de sincronização reduz overhead, melhorando o desempenho em contextos single-thread ou quando cada thread usa sua própria instância.
Para uso seguro em ambiente concorrente, use StringBuffer (métodos sincronizados) ou aplique sincronização externa (locks, blocos synchronized) ao compartilhar a mesma instância.
Em suma: StringBuilder é rápido, porém requer cuidado quando for acessado por múltiplas threads.
Conteúdo do catálogo FC Concursos · Atualizado em