1. Em loops importantes, elimine chamadas de método ao julgar o encerramento do loop.
Copie o código do código da seguinte forma:
for(int i=0; i<coleção.tamanho(); i++)
{
...
}
for(int i=0; i<coleção.tamanho(); i++)
{
...
}
Substitua por…
Copie o código do código da seguinte forma:
visualizar cópia simples para impressão da área de transferência?
for(int i=0;n=coleção.size();i<n;i++)
{
...
}
2. Normalmente, mova itens que não estão relacionados ao índice do loop para fora do loop.
Copie o código do código da seguinte forma:
for(int i=0;terminal=x.length;i<terminal;i++){
X[i]=x[i]/escalaA*escalaB;
}
for(int i=0;terminal=x.length;i<terminal;i++){
X[i]=x[i]/escalaA*escalaB;
}
Mudar para
Copie o código do código da seguinte forma:
escala dupla = escalaB/escalaA;
for(int i=0; terminal=x.length; i<terminal; i++){
X[i]=x[i]*escala;
}
2. Corda
Elimine a concatenação de strings Ao criar strings longas, sempre use StringBuffter em vez de String
Pré-alocar espaço StringBuffer
StringBuffer sb = new StringBuffer(5000);
3. Tipos básicos de dados
Use tipos de dados básicos em loops importantes (os tipos de dados int geralmente são mais rápidos que os tipos de dados longos/duplos)
Classes wrapper de tipos de dados básicos (Booleano, Inteiro, etc.) são usadas principalmente quando o parâmetro do método passado deve ser uma referência a um objeto (em vez de um tipo de dados básico)
Use o modificador final estático para todas as expressões algébricas constantes
Um torna as constantes mais fáceis de referenciar (o compilador pré-calcula expressões constantes)
4. Anormalidade
Exceções são usadas apenas para uma única condição de erro verdadeira
Lançar uma exceção e executar um bloco catch é caro (principalmente devido à obtenção de um instantâneo da pilha de threads ao criar uma exceção)
Uma exceção é lançada somente quando a condição é realmente anormal
Faça otimizações do compilador e do tempo de execução colocando várias chamadas de método em um bloco try/catch em vez de implementar vários blocos try/catch para cada chamada de método
5. Referência
Observe que todas essas dicas variam entre plataformas e máquinas virtuais
Por exemplo: em alguns contêineres de servlet, é mais rápido gerar bytes por meio de um OutputStream - em outros contêineres, é mais rápido gerar caracteres por meio de um PrintWriter
Estas dicas descrevem as recomendações mais portáteis
Pode ser necessário executar alguns benchmarks para determinar o que é mais rápido em sua plataforma