Você já precisou ler um arquivo muito grande do disco, processar linha a linha para só então guardar as linhas válidas e? Estou falando de um código como este:
File bigFile = new File("big-file.txt");
Scanner scanner = new Scanner(new FileReader(bigFile))
.useDelimiter("\n");
String validas = "";
while (scanner.hasNext()) {
String linha = scanner.next();
if (linha.contains("ok")) {
validas += linha;
}
}
// faz algo com as linhas validas
O código é bem simples e parece inofensivo. Mas e se eu te falar que você pode ter problemas de performance exatamente na linha que faz a concatenação de strings?
Este é o típico caso que devemos evitar a concatenação de strings com o operador + (mais) e favorer o uso da API StringBuilder do Java. Com StringBuilder ajudamos a JVM e resolvemos o gargalo de desempenho num código tão simples quanto aquele.
Quer saber mais sobre o uso da StringBuilder? Assista nosso novo vídeo com a 4a dica de programação:
[Vídeo] Dica de Programação #4: StringBuilder
Como os demais vídeos que publicamos, este também é curtinho e tem uma dica que vai fazer você repensar antes de sair concatenando grandes strings no seu código.
E não esqueça: compartilha o vídeo com aquele seu amigo que acha que concatenar strings é inofensivo para aplicação.

Oi Rafael
Eis o link que lhe falei hoje no javou 7 ( 2/2016 )
Grande abraço
Opa! Vou assistir sim! Valeu por ter lembrado o/
Rafael, uma vez pesquisando em grupos, um colega comentou que ao usar o +, seria o mesmo que usar o stringbuilder, que internamente o Java entende assim, procede a informação?
Procede sim, já faz algum tempo que a JVM resolveu o problema de concatenação para o desenvolvedor.
Contudo, dependendo de como você faz a concatenação a JVM não consegue otimizar seu código e acaba por torná-lo ainda mais lento. Um caso comum é quando lidamos com um loop ao concatenar strings.