Vi pelo fórum algumas recomendações de evitar de se usar String quando você precisar fazer alguma modificação nela.
Alguém saberia me explicar o porque exatamente disso ? (de evitar usar objString = "nome " + ": " por exemplo)
Quando é mais recomendado usar cada ?
Supondo que eu tenha um método que seria muito chamado com parâmetros String ... Param1, Param2, Param3 e retornaria uma String com "Param1 ? Param2 : Param3".
Seria melhor criar um StringBuffer e usar vários append nesse caso ?
Algo como:
E se ele fosse chamado só uma única vez quando o processo é executado, não teria problema em usar algo como return Param1 + "?" + Param2 + ":" + Param3; ?
Eu, pelo menos, acho que não vale a pena utilizar StringBuilder ou StringBuffer para realizar funções pequenas como a sua.
Ao meu ver, StringBuilder é mais apropriado para realizar um grande numero de concatenações com, por exemplo, ao escrever um xml.
CrOnNoS
Não é bem “minha função”. Como disse foi apenas um exemplo. E exatamente por ser pequeno eu espefiquei “em um caso que esse método seria chamado muitas vezes”.
Meu ponto é saber melhor as desvantagens de se usar String e vantagens do StringBuffer (ou outra classe do tipo).
G
Gbzao
O principal motivo é String são inalteraveis… Cada vez que você concatena, você na verdade está criando uma nova String,
e trocando a referência, e perdendo o valor anterior…
Acho que a questão aqui é: É eficiente utilizar StringBuilder para pequenas operações?
ViniGodoy
Não muito mais eficiente do que usar String direto, a menos que você esteja chamando isso num loop.
Também é bom lembrar que a concatenação de constantes é mais eficiente usando + do que StringBuilder. Isso pq o Java é capaz de simplesmente eliminar essa concatenação já na compilação.
Exemplo:
private static final String nome = “Vinicius”;
String x = nome + " Godoy" + " de Mendonça";
Depois de compilado vira: String x = “Vinícius Godoy de Mendonça”;
CrOnNoS
As respostas ajudaram bastante =D obrigado a todos. Vou levar em conta o que aprendi aqui daqui pra frente hehe