StringBuffer X StringBuilder

Olá pessoal,
tenho a seguinte dúvida:
em um código onde não se faça uso de threads, os desempenhos das classes StringBuffer e StringBuilder serão exatamente os mesmos?
Aguardo respostas. Valew!

Sim a única diferença entre elas é que a StringBuilder possui todos os métodos synchronizados, o que pode acasionar um bloqueio. Se você não fizer uso de threads, não haverá bloqueio, então não faz diferença!

Qualquer coisa sincronizada é muito mais lenta que uma não sincronizada, assim sendo, StringBuilder em um ambiente “single-thread” é muito mais rápido que StringBuffer e sempre recomendado nesse caso.

hmmm antes de responder eu fiz um teste aqui pra não falar nada errado…

public static void main(String[] args) {
        StringBuffer b = new StringBuffer("");
        //StringBuilder b = new StringBuilder("");
        long i = System.currentTimeMillis();
        for( int q = 0; q < 10000; q++ ) {
            b.append("a");
        }
        long f = System.currentTimeMillis();
        
        System.out.println("Time: " + (f - i));
    }

Engraçado que todos deram 10, talvez seja porque a máquina aqui é potente, e foram poucas interações.

Sorry

Com todas as otimizações do compilador, não é confiável fazer testes de performance num trecho de código pequeno.

Recentemente eu li um artigo que dizia que um código sincronizado não é tãããão mais lento assim. http://www-128.ibm.com/developerworks/java/library/j-jtp04223.html?ca=dgr-lnxw07-obg-JavaMyths