Dica de Programação 4 - StringBuilder

Dica de Programação #4 – StringBuilder

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.

 

Hot deploy de verdade no Eclipse e Tomcat

Você sabia que um desenvolvedor leva em média 1h/dia olhando pro console do Eclipse esperando o Tomcat subir com a aplicação? Pois é, isso acontece pois sempre que alteramos uma classe na aplicação o plugin WTP do Eclipse é obrigado a recarregar todo o contexto da aplicação no Tomcat, o que leva em torno de 30s na maioria das aplicações!

Para diminuir este tempo de espera e ter uma melhor produtividade, nós podemos habilitar o hot deploy de classes no WTP do Eclipse! Dessa forma, quando modificamos uma classes Java o Eclipse se encarrega de atualizá-la no Tomcat sem a necessidade de recarregar todo o contexto, semelhante ao que ocorre com JSPs, CSS, JavaScripts e outros!

Com algumas poucas configurações no Eclipse você já pode se beneficiar do hot deploy de classes e ter uma semana muito, mas muito mais produtiva!