FC ConcursosFC Concursos

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.

  1. StringBuilders não são seguros para thread.
  2. A classe StringBuilder fornece oito construtores.
  3. O método length garante que um StringBuilder tenha pelo menos a capacidade especificada.
  4. Se a capacidade de um StringBuilder for excedida, há um estouro de buffer; pois a capacidade não se expande para acomodar mais caracteres.
  5. 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

Continue aprendendo