O titulo dessa postagem ja e um spoiler, mas o que eu quero dizer realmente com O problema e voce?Antes de sair apontando o dedo para o pessoal de rede dizendo que o servidor nao presta ou o cabeamento esta cheio de baratas (provavelmente o servidor e ultrapassado e o cabeamento esta cheio de baratas), mas antes de culpar o servidor, aponte o dedo para o espelho, e melhore esse codigo feio que esta fazendo!Pense que em uma aplicacao, nao e apenas o front-end que precisa ser bonito, a area por traz das cortinas tem que ser mais bonita ainda. Voce gosta quando precisa arrumar um programa que o codigo foi feito por um estagiario do periodo cenozoico? Pois bem, provavelmente o proximo programador que olhar para o seu codigo vai ter a mesma impressao: P.q.p! Esse codigo deve ter passado pelas maos sujas de um estagiario!.Particularmente eu nao gosto de assinar um codigo feio, so coloco meu nome em um codigo depois de arruma-lo e deixa-lo legivel.IMPORTANTE: Codigo feio e gambiarra sao coisas extremamente diferentes, gambiarras fazem partes da vida de qualquer programador, seja ele estagiario ou especialista, porem so porque precisamos fazer uma gambiarra nao significa que devemos deixar o codigo em hebraico.Mas o que tem a ver codigo legivel com deixar o programa mais rapido?Tudo!Uma cultura de codigo limpo e codigo bonito leva a uma outra cultura, de programa rapido, pois voce se acostuma a fazer um codigo melhor, que consequentemente, funcionara de forma mais rapida. Alem de um fator importante, a performance do programador que for arrumar ou melhorar o programa. Com certeza quem for mexer no codigo-fonte desse programa vai terminar a alteracao muito mais rapido se nao precisar utilizar o tradutor do google para traduzir de hebraico para javanes.Mas o que, especificamente, pode ser feito para deixar a aplicacao mais rapida?Siga os passos abaixo, que vera a diferenca.Em alguns casos, o usuario nao percebera a diferenca, mas voce sim, porque o servidor vai parar de cair e voce vai parar de ser acordado as tres da madrugada para dar stop/start na aplicacao.Lacos FOREntenda que for convencional e mal, foreach e iterator sao bons.Em um laco for convencional, e necessario criar varios objetos para controle do loop e do proprio conteudo da lista, e isso consome mais processamento e memoria do que um foreach ou iterator, porque esses dois ja trabalham de uma forma que, se bem utilizados, nao ha a necessidade de criar objetos de controle.Exemplo de foreach:ArrayList<Objeto> lista = new ArrayList<Objeto>(Numeros.CEM);for(Objeto variavel : lista) {System.out.println(variavel.getNome());}Exemplo de IteratorArrayList<String> array = new ArrayList<String>(Numeros.CEM);Iterator<String> it = array.iterator();while(it.hasNext()) {System.out.println(it.toString());}Metodos dentro de lacos Isso nao se faz, a cada iteracao do loop um metodo de terceiros e consultado.Se o valor nao muda, e melhor atribui-lo a uma variavel, diminuindo o tempo de processamento do laco.Exemplo de como nao fazer: ArrayList lista = new ArrayList();for (int i = 0; i < lista.size(); i++) {System.out.println(lista.get(i));}Nesse exemplo, de como nao fazer, a chamada ao metodo lista.size() sera efetuada em cada iteracao do laco, que pode ser while ou do..while, e se o laco